Merge branch 'master' of github.com:webnotes/erpnext into responsive

Conflicts:
	accounts/doctype/sales_invoice/sales_invoice.py
	selling/doctype/sales_common/sales_common.py
diff --git a/accounts/page/accounts_home/accounts_home.js b/accounts/page/accounts_home/accounts_home.js
index c3d4cf1..25ee92c 100644
--- a/accounts/page/accounts_home/accounts_home.js
+++ b/accounts/page/accounts_home/accounts_home.js
@@ -198,11 +198,21 @@
 				doctype: "Sales Invoice"
 			},
 			{
+				"label":wn._("Received Items To Be Billed"),
+				route: "query-report/Received Items To Be Billed",
+				doctype: "Purchase Invoice"
+			},
+			{
 				"label":wn._("Ordered Items To Be Billed"),
 				route: "query-report/Ordered Items To Be Billed",
 				doctype: "Sales Invoice"
 			},
 			{
+				"label":wn._("Purchase Order Items To Be Billed"),
+				route: "query-report/Purchase Order Items To Be Billed",
+				doctype: "Purchase Invoice"
+			},
+			{
 				"label":wn._("Bank Clearance Summary"),
 				route: "query-report/Bank Clearance Summary",
 				doctype: "Journal Voucher"
diff --git a/accounts/page/voucher_import_tool/voucher_import_tool.py b/accounts/page/voucher_import_tool/voucher_import_tool.py
index 6648ee6..7634e5b 100644
--- a/accounts/page/voucher_import_tool/voucher_import_tool.py
+++ b/accounts/page/voucher_import_tool/voucher_import_tool.py
@@ -1,7 +1,7 @@
 from __future__ import unicode_literals
 import webnotes
 from webnotes import _
-from webnotes.utils import flt, comma_and
+from webnotes.utils import flt, comma_and, cstr
 import webnotes.defaults
 
 @webnotes.whitelist()
@@ -31,13 +31,12 @@
 "3. Naming Series Options: %(naming_options)s"
 "4. Voucher Type Options: %(voucher_type)s"%(extra_note)s
 "-------Common Values-----------"
-"Company:","%(default_company)s"
+"Company:",
 "--------Data----------"
 %(columns)s
 ''' % {
 		"template_type": template_type,
 		"user_fmt": webnotes.defaults.get_global_default('date_format'),
-		"default_company": webnotes.conn.get_default("company"),
 		"naming_options": naming_options.replace("\n", ", "),
 		"voucher_type": voucher_type.replace("\n", ", "),
 		"extra_note": extra_note,
@@ -49,14 +48,29 @@
 
 @webnotes.whitelist()
 def upload():
-	from webnotes.utils.datautils import read_csv_content_from_uploaded_file
-	rows = read_csv_content_from_uploaded_file()
-
-	common_values = get_common_values(rows)
-	company_abbr = webnotes.conn.get_value("Company", common_values.company, "abbr")
-	data, start_idx = get_data(rows, company_abbr)
+	messages = []
+	try:
+		from webnotes.utils.datautils import read_csv_content_from_uploaded_file
+		rows = read_csv_content_from_uploaded_file()
 	
+		common_values = get_common_values(rows)
+		company_abbr = webnotes.conn.get_value("Company", common_values.company, "abbr")
+		
+		if not company_abbr:
+			webnotes.msgprint(_("Company is missing or entered incorrect value"), raise_exception=1)
+		
+		data, start_idx = get_data(rows, company_abbr)
+	except Exception, e:
+		err_msg = webnotes.message_log and "<br>".join(webnotes.message_log) or cstr(e)
+		messages.append("""<p style='color: red'>%s</p>""" % (err_msg or "No message"))
+		webnotes.errprint(webnotes.getTraceback())
+		webnotes.message_log = []
+		return messages
+		
 	return import_vouchers(common_values, data, start_idx, rows[0][0])
+	
+	
+
 
 def map_fields(field_list, source, target):
 	for f in field_list:
@@ -70,9 +84,8 @@
 	from webnotes.model.bean import Bean
 	from accounts.utils import get_fiscal_year
 	from webnotes.utils.dateutils import parse_date
-
 	messages = []
-		
+	
 	def get_account_details(account):
 		acc_details = webnotes.conn.sql("""select is_pl_account, 
 			master_name from tabAccount where name=%s""", account, as_dict=1)
@@ -113,8 +126,9 @@
 				
 				if d.ref_number:
 					if not d.ref_date:
-						raise webnotes.ValidationError, \
-							"""Ref Date is Mandatory if Ref Number is specified"""
+						webnotes.msgprint(_("Ref Date is Mandatory if Ref Number is specified"), 
+							raise_exception=1)
+							
 					d.ref_date = parse_date(d.ref_date)
 				
 				d.company = common_values.company
@@ -176,7 +190,7 @@
 		webnotes.conn.commit()
 	except Exception, e:
 		webnotes.conn.rollback()
-		err_msg = webnotes.message_log and "<br>".join(webnotes.message_log) or unicode(e)
+		err_msg = webnotes.message_log and "<br>".join(webnotes.message_log) or cstr(e)
 		messages.append("""<p style='color: red'>[row #%s] %s failed: %s</p>"""
 			% ((start_idx + 1) + i, jv.name or "", err_msg or "No message"))
 		messages.append("<p style='color: red'>All transactions rolled back</p>")
@@ -240,16 +254,20 @@
 					raise Exception, """Column No(s). %s %s empty. \
 						Please remove them and try again.""" % (comma_and(empty_columns),
 						len(empty_columns)==1 and "is" or "are")
-				
+
 				columns = [c.replace(" ", "_").lower() for c in rows[i+1] 
 					if not c.endswith(" - " + company_abbr)]
 				accounts = [c for c in rows[i+1] if c.endswith(" - " + company_abbr)]
-				
+
+				if not accounts:
+					webnotes.msgprint(_("""No Account found in csv file, 
+						May be company abbreviation is not correct"""), raise_exception=1)
+
 				if accounts and (len(columns) != rows[i+1].index(accounts[0])):
-					raise Exception, _("""All account columns should be after \
+					webnotes.msgprint(_("""All account columns should be after \
 						standard columns and on the right.
 						If you entered it properly, next probable reason \
 						could be wrong account name.
-						Please rectify it in the file and try again.""")
+						Please rectify it in the file and try again."""), raise_exception=1)
 				
 	return data, start_row_idx
\ No newline at end of file
diff --git a/accounts/report/accounts_receivable/accounts_receivable.txt b/accounts/report/accounts_receivable/accounts_receivable.txt
index 7eb344f..d01bef2 100644
--- a/accounts/report/accounts_receivable/accounts_receivable.txt
+++ b/accounts/report/accounts_receivable/accounts_receivable.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-16 11:31:13", 
   "docstatus": 0, 
-  "modified": "2013-04-30 17:54:47", 
+  "modified": "2013-05-24 12:02:52", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
diff --git a/accounts/report/purchase_order_items_to_be_billed/__init__.py b/accounts/report/purchase_order_items_to_be_billed/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/accounts/report/purchase_order_items_to_be_billed/__init__.py
diff --git a/accounts/report/purchase_order_items_to_be_billed/purchase_order_items_to_be_billed.txt b/accounts/report/purchase_order_items_to_be_billed/purchase_order_items_to_be_billed.txt
new file mode 100644
index 0000000..7a9ec36
--- /dev/null
+++ b/accounts/report/purchase_order_items_to_be_billed/purchase_order_items_to_be_billed.txt
@@ -0,0 +1,23 @@
+[
+ {
+  "creation": "2013-05-28 15:54:16", 
+  "docstatus": 0, 
+  "modified": "2013-05-28 16:02:57", 
+  "modified_by": "Administrator", 
+  "owner": "Administrator"
+ }, 
+ {
+  "add_total_row": 1, 
+  "doctype": "Report", 
+  "is_standard": "Yes", 
+  "name": "__common__", 
+  "query": "select \n    `tabPurchase Order`.`name` as \"Purchase Order:Link/Purchase Order:120\",\n    `tabPurchase Order`.`transaction_date` as \"Date:Date:100\",\n\t`tabPurchase Order`.`supplier` as \"Supplier:Link/Supplier:120\",\n\t`tabPurchase Order Item`.`project_name` as \"Project\",\n\t`tabPurchase Order Item`.item_code as \"Item Code:Link/Item:120\",\n\t`tabPurchase Order Item`.qty as \"Qty:Float:100\",\n\t`tabPurchase Order Item`.billed_qty as \"Billed Qty:Float:100\", \n\t(`tabPurchase Order Item`.qty - ifnull(`tabPurchase Order Item`.billed_qty, 0)) as \"Qty to Bill:Float:100\",\n\t`tabPurchase Order Item`.item_name as \"Item Name::150\",\n\t`tabPurchase Order Item`.description as \"Description::200\"\nfrom\n\t`tabPurchase Order`, `tabPurchase Order Item`\nwhere\n\t`tabPurchase Order Item`.`parent` = `tabPurchase Order`.`name`\n\tand `tabPurchase Order`.docstatus = 1\n\tand `tabPurchase Order`.status != \"Stopped\"\n\tand ifnull(`tabPurchase Order Item`.billed_qty, 0) < ifnull(`tabPurchase Order Item`.qty, 0)\norder by `tabPurchase Order`.transaction_date asc", 
+  "ref_doctype": "Purchase Invoice", 
+  "report_name": "Purchase Order Items To Be Billed", 
+  "report_type": "Query Report"
+ }, 
+ {
+  "doctype": "Report", 
+  "name": "Purchase Order Items To Be Billed"
+ }
+]
\ No newline at end of file
diff --git a/accounts/report/received_items_to_be_billed/__init__.py b/accounts/report/received_items_to_be_billed/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/accounts/report/received_items_to_be_billed/__init__.py
diff --git a/accounts/report/received_items_to_be_billed/received_items_to_be_billed.txt b/accounts/report/received_items_to_be_billed/received_items_to_be_billed.txt
new file mode 100644
index 0000000..554e0f0
--- /dev/null
+++ b/accounts/report/received_items_to_be_billed/received_items_to_be_billed.txt
@@ -0,0 +1,23 @@
+[
+ {
+  "creation": "2013-05-28 15:57:59", 
+  "docstatus": 0, 
+  "modified": "2013-05-28 17:34:05", 
+  "modified_by": "Administrator", 
+  "owner": "Administrator"
+ }, 
+ {
+  "add_total_row": 1, 
+  "doctype": "Report", 
+  "is_standard": "Yes", 
+  "name": "__common__", 
+  "query": "select \n    `tabPurchase Receipt`.`name` as \"Purchase Receipt:Link/Purchase Receipt:120\",\n    `tabPurchase Receipt`.`posting_date` as \"Date:Date:100\",\n    `tabPurchase Receipt`.`supplier` as \"Supplier:Link/Supplier:120\",\n    `tabPurchase Receipt Item`.`project_name` as \"Project\",\n\t`tabPurchase Receipt Item`.item_code as \"Item Code:Link/Item:120\",\n\t`tabPurchase Receipt Item`.qty as \"Qty:Float:100\",\n\t`tabPurchase Receipt Item`.billed_qty as \"Billed Qty:Float:100\", \n\t(`tabPurchase Receipt Item`.qty - ifnull(`tabPurchase Receipt Item`.billed_qty, 0)) as \"Qty to Bill:Float:100\",\n\t`tabPurchase Receipt Item`.item_name as \"Item Name::150\",\n\t`tabPurchase Receipt Item`.description as \"Description::200\"\nfrom\n\t`tabPurchase Receipt`, `tabPurchase Receipt Item`\nwhere\n\t`tabPurchase Receipt Item`.`parent` = `tabPurchase Receipt`.`name`\n\tand `tabPurchase Receipt`.docstatus = 1\n\tand `tabPurchase Receipt`.status != \"Stopped\"\n\tand ifnull(`tabPurchase Receipt Item`.billed_qty, 0) < ifnull(`tabPurchase Receipt Item`.qty, 0)\norder by `tabPurchase Receipt`.posting_date asc", 
+  "ref_doctype": "Purchase Invoice", 
+  "report_name": "Received Items To Be Billed", 
+  "report_type": "Query Report"
+ }, 
+ {
+  "doctype": "Report", 
+  "name": "Received Items To Be Billed"
+ }
+]
\ No newline at end of file
diff --git a/accounts/utils.py b/accounts/utils.py
index 755546c..31e6221 100644
--- a/accounts/utils.py
+++ b/accounts/utils.py
@@ -273,36 +273,45 @@
 			jv = webnotes.bean([
 				{
 					"doctype": "Journal Voucher",
-					"naming_series": "_PATCH-",
+					"naming_series": "JV-AUTO-",
 					"company": company,
 					"posting_date": today,
 					"fiscal_year": fiscal_year,
 					"voucher_type": "Journal Entry",
-					"user_remark": "Accounting Entry for Stock: \
-						Initial booking of stock received but not billed account"
+					"user_remark": (_("Auto Inventory Accounting") + ": " +
+						(_("Disabled") if reverse else _("Enabled")) + ". " +
+						_("Journal Entry for inventory that is received but not yet invoiced"))
 				},
 				{
 					"doctype": "Journal Voucher Detail",
 					"parentfield": "entries",
 					"account": get_company_default(company, "stock_received_but_not_billed"),
-					(stock_rbnb_value > 0 and "credit" or "debit"): abs(stock_rbnb_value)
+						(stock_rbnb_value > 0 and "credit" or "debit"): abs(stock_rbnb_value)
 				},
 				{
 					"doctype": "Journal Voucher Detail",
 					"parentfield": "entries",
 					"account": get_company_default(company, "stock_adjustment_account"),
-					(stock_rbnb_value > 0 and "debit" or "credit"): abs(stock_rbnb_value),
+						(stock_rbnb_value > 0 and "debit" or "credit"): abs(stock_rbnb_value),
 					"cost_center": get_company_default(company, "stock_adjustment_cost_center")
 				},
 			])
 			jv.insert()
-			jv.submit()
 			
 			jv_list.append(jv.doc.name)
 	
 	if jv_list:
-		webnotes.msgprint("""Folowing Journal Vouchers has been created automatically: 
-			%s""" % '\n'.join(jv_list))
+		msgprint(_("Following Journal Vouchers have been created automatically") + \
+			":\n%s" % ("\n".join([("<a href=\"#Form/Journal Voucher/%s\">%s</a>" % (jv, jv)) for jv in jv_list]),))
+		
+		msgprint(_("""These adjustment vouchers book the difference between \
+			the total value of received items and the total value of invoiced items, \
+			as a required step to use Auto Inventory Accounting.
+			This is an approximation to get you started.
+			You will need to submit these vouchers after checking if the values are correct.
+			For more details, read: \
+			<a href="http://erpnext.com/auto-inventory-accounting" target="_blank">\
+			Auto Inventory Accounting</a>"""))
 			
 	webnotes.msgprint("""Please refresh the system to get effect of Auto Inventory Accounting""")
 			
@@ -322,3 +331,20 @@
 		and exists(select name from `tabPurchase Invoice` 
 			where name = pi_item.parent and company = %s)""", company)
 	return flt(total_received_amount[0][0]) - flt(total_billed_amount[0][0])
+
+
+def fix_total_debit_credit():
+	vouchers = webnotes.conn.sql("""select voucher_type, voucher_no, 
+		sum(debit) - sum(credit) as diff 
+		from `tabGL Entry` 
+		group by voucher_type, voucher_no
+		having sum(ifnull(debit, 0)) != sum(ifnull(credit, 0))""", as_dict=1)
+		
+	for d in vouchers:
+		if abs(d.diff) > 0:
+			dr_or_cr = d.voucher_type == "Sales Invoice" and "credit" or "debit"
+			
+			webnotes.conn.sql("""update `tabGL Entry` set %s = %s + %s
+				where voucher_type = %s and voucher_no = %s and %s > 0 limit 1""" %
+				(dr_or_cr, dr_or_cr, '%s', '%s', '%s', dr_or_cr), 
+				(d.diff, d.voucher_type, d.voucher_no), debug=1)
\ No newline at end of file
diff --git a/selling/doctype/customer/customer.py b/selling/doctype/customer/customer.py
index 6f54ef9..72e12b7 100644
--- a/selling/doctype/customer/customer.py
+++ b/selling/doctype/customer/customer.py
@@ -219,27 +219,8 @@
 	def on_rename(self, new, old, merge=False):
 		#update customer_name if not naming series
 		if webnotes.defaults.get_global_default('cust_master_name') == 'Customer Name':
-			update_fields = [
-			('Customer', 'name'),
-			('Address', 'customer'),
-			('Contact', 'customer'),
-			('Customer Issue', 'customer'),
-			('Delivery Note', 'customer'),
-			('Opportunity', 'customer'),
-			('Installation Note', 'customer'),
-			('Maintenance Schedule', 'customer'),
-			('Maintenance Visit', 'customer'),
-			('Project', 'customer'),
-			('Quotation', 'customer'),
-			('Sales Invoice', 'customer'),
-			('Sales Order', 'customer'),
-			('Serial No', 'customer'),
-			('Shipping Address', 'customer'),
-			('Stock Entry', 'customer'),
-			('Support Ticket', 'customer')]
-			for rec in update_fields:
-				sql("""update `tab%s` set customer_name = %s
-					where `%s` = %s""" % (rec[0], "%s" ,rec[1], "%s"), (new, old))
+			webnotes.conn.sql("""update `tabCustomer` set customer_name = %s where name = %s""", 
+				(new, old))
 		
 		for account in webnotes.conn.sql("""select name, account_name from 
 			tabAccount where master_name=%s and master_type='Customer'""", old, as_dict=1):
diff --git a/selling/report/item_wise_sales_history/item_wise_sales_history.txt b/selling/report/item_wise_sales_history/item_wise_sales_history.txt
index 6fee050..adbfe69 100644
--- a/selling/report/item_wise_sales_history/item_wise_sales_history.txt
+++ b/selling/report/item_wise_sales_history/item_wise_sales_history.txt
@@ -1,13 +1,14 @@
 [
  {
-  "creation": "2013-05-03 14:38:34", 
+  "creation": "2013-05-23 17:42:24", 
   "docstatus": 0, 
-  "modified": "2013-05-07 11:19:40", 
+  "modified": "2013-05-24 12:20:17", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
   "add_total_row": 1, 
+  "disabled": 0, 
   "doctype": "Report", 
   "is_standard": "Yes", 
   "name": "__common__", 
diff --git a/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.js b/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.js
index 4a8e678..2e1996e 100644
--- a/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.js
+++ b/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.js
@@ -50,5 +50,11 @@
 			fieldtype: "Link",
 			options: "Customer",
 		},
+		{
+			fieldname:"territory",
+			label: "Territory",
+			fieldtype: "Link",
+			options: "Territory",
+		},
 	]
 }
\ No newline at end of file
diff --git a/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py b/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py
index 23e8819..8ec3a18 100644
--- a/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py
+++ b/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py
@@ -54,6 +54,7 @@
 	conditions = ""
 	if filters.get("company"): conditions += " and dt.company = '%s'" % filters["company"]
 	if filters.get("customer"): conditions += " and dt.customer = '%s'" % filters["customer"]
+	if filters.get("territory"): conditions += " and dt.territory = '%s'" % filters["territory"]
 	
 	if filters.get("from_date"): conditions += " and dt.%s >= '%s'" % \
 		(date_field, filters["from_date"])
diff --git a/setup/doctype/naming_series/naming_series.py b/setup/doctype/naming_series/naming_series.py
index 3a6b36d..eb293f2 100644
--- a/setup/doctype/naming_series/naming_series.py
+++ b/setup/doctype/naming_series/naming_series.py
@@ -123,16 +123,9 @@
 			
 	def validate_series_name(self, n):
 		import re
-		if "." in n:
-			parts = n.split(".")
-			if len(parts) > 2:
-				msgprint("Only one dot (.) allowed in " + n, raise_exception=1)
-			if not re.match("#+$", parts[-1]):
-				msgprint("Numbering series must be in hashes (e.g. ####)", raise_exception=1)
-			n = n[0]
-		if not re.match("^[a-zA-Z0-9-/]*$", n):
-			msgprint('Special Characters except "-" and "/" not allowed in naming series')
-			raise Exception
+		if not re.match("^[a-zA-Z0-9-/.#]*$", n):
+			msgprint('Special Characters except "-" and "/" not allowed in naming series',
+				raise_exception=True)
 		
 	def get_options(self, arg=''):
 		sr = webnotes.model.doctype.get_property(self.doc.select_doc_for_series, 
diff --git a/setup/page/setup/setup.js b/setup/page/setup/setup.js
index 1ebd730..788021a 100644
--- a/setup/page/setup/setup.js
+++ b/setup/page/setup/setup.js
@@ -73,7 +73,7 @@
 			{
 				"route":"Form/Naming Series/Naming Series",
 				doctype: "Naming Series",
-				label: wn._("Manage numbering series"),
+				label: wn._("Manage Numbering Series"),
 				"description":wn._("Set multiple numbering series for transactions")
 			},
 			{
diff --git a/stock/report/purchase_order_items_to_be_received/purchase_order_items_to_be_received.txt b/stock/report/purchase_order_items_to_be_received/purchase_order_items_to_be_received.txt
index 7a2f636..c588dde 100644
--- a/stock/report/purchase_order_items_to_be_received/purchase_order_items_to_be_received.txt
+++ b/stock/report/purchase_order_items_to_be_received/purchase_order_items_to_be_received.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 18:01:55", 
   "docstatus": 0, 
-  "modified": "2013-05-13 16:11:27", 
+  "modified": "2013-05-28 16:03:15", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -11,7 +11,7 @@
   "doctype": "Report", 
   "is_standard": "Yes", 
   "name": "__common__", 
-  "query": "select \n    `tabPurchase Order`.`name` as \"Purchase Order:Link/Purchase Order:120\",\n\t`tabPurchase Order`.`transaction_date` as \"Date:Date:100\",\n\t`tabPurchase Order`.`supplier` as \"Supplier:Link/Supplier:120\",\n\t`tabPurchase Order`.`project_name` as \"Project\",\n\t`tabPurchase Order Item`.item_code as \"Item Code:Link/Item:120\",\n\t`tabPurchase Order Item`.qty as \"Qty:Float:100\",\n\t`tabPurchase Order Item`.received_qty as \"Received Qty:Float:100\", \n\t(`tabPurchase Order Item`.qty - ifnull(`tabPurchase Order Item`.received_qty, 0)) as \"Qty to Receive:Float:100\",\n\t`tabPurchase Order Item`.item_name as \"Item Name::150\",\n\t`tabPurchase Order Item`.description as \"Description::200\"\nfrom\n\t`tabPurchase Order`, `tabPurchase Order Item`\nwhere\n\t`tabPurchase Order Item`.`parent` = `tabPurchase Order`.`name`\n\tand `tabPurchase Order`.docstatus = 1\n\tand `tabPurchase Order`.status != \"Stopped\"\n\tand ifnull(`tabPurchase Order Item`.received_qty, 0) < ifnull(`tabPurchase Order Item`.qty, 0)\norder by `tabPurchase Order`.transaction_date asc", 
+  "query": "select \n    `tabPurchase Order`.`name` as \"Purchase Order:Link/Purchase Order:120\",\n\t`tabPurchase Order`.`transaction_date` as \"Date:Date:100\",\n\t`tabPurchase Order`.`supplier` as \"Supplier:Link/Supplier:120\",\n\t`tabPurchase Order Item`.`project_name` as \"Project\",\n\t`tabPurchase Order Item`.item_code as \"Item Code:Link/Item:120\",\n\t`tabPurchase Order Item`.qty as \"Qty:Float:100\",\n\t`tabPurchase Order Item`.received_qty as \"Received Qty:Float:100\", \n\t(`tabPurchase Order Item`.qty - ifnull(`tabPurchase Order Item`.received_qty, 0)) as \"Qty to Receive:Float:100\",\n\t`tabPurchase Order Item`.item_name as \"Item Name::150\",\n\t`tabPurchase Order Item`.description as \"Description::200\"\nfrom\n\t`tabPurchase Order`, `tabPurchase Order Item`\nwhere\n\t`tabPurchase Order Item`.`parent` = `tabPurchase Order`.`name`\n\tand `tabPurchase Order`.docstatus = 1\n\tand `tabPurchase Order`.status != \"Stopped\"\n\tand ifnull(`tabPurchase Order Item`.received_qty, 0) < ifnull(`tabPurchase Order Item`.qty, 0)\norder by `tabPurchase Order`.transaction_date asc", 
   "ref_doctype": "Purchase Receipt", 
   "report_name": "Purchase Order Items To Be Received", 
   "report_type": "Query Report"