Merge pull request #16218 from deepeshgarg007/analytics-graph

[Bug-fix] Analytics report graph skipping quarter values bug fix
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.js b/erpnext/buying/doctype/purchase_order/purchase_order.js
index a505e49..019d0de 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.js
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.js
@@ -315,7 +315,6 @@
 					method: "erpnext.stock.doctype.material_request.material_request.make_purchase_order",
 					source_doctype: "Material Request",
 					target: me.frm,
-					args: args,
 					setters: {
 						company: me.frm.doc.company
 					},
diff --git a/erpnext/education/report/student_fee_collection/student_fee_collection.json b/erpnext/education/report/student_fee_collection/student_fee_collection.json
index 07fc27c..eb945cf 100644
--- a/erpnext/education/report/student_fee_collection/student_fee_collection.json
+++ b/erpnext/education/report/student_fee_collection/student_fee_collection.json
@@ -1,18 +1,18 @@
 {
  "add_total_row": 0, 
- "apply_user_permissions": 1, 
  "creation": "2016-06-22 02:58:41.024538", 
  "disabled": 0, 
  "docstatus": 0, 
  "doctype": "Report", 
  "idx": 3, 
  "is_standard": "Yes", 
- "modified": "2017-11-10 19:41:37.320224", 
+ "modified": "2018-12-17 16:46:46.176620", 
  "modified_by": "Administrator", 
  "module": "Education", 
  "name": "Student Fee Collection", 
  "owner": "Administrator", 
- "query": "SELECT\n student as \"Student:Link/Student:200\",\n student_name as \"Student Name::200\",\n sum(paid_amount) as \"Paid Amount:Currency:150\",\n sum(outstanding_amount) as \"Outstanding Amount:Currency:150\",\n sum(grand_total) as \"Grand Total:Currency:150\"\nFROM\n `tabFees` \nGROUP BY\n student", 
+ "prepared_report": 0, 
+ "query": "SELECT\n student as \"Student:Link/Student:200\",\n student_name as \"Student Name::200\",\n sum(grand_total) - sum(outstanding_amount) as \"Paid Amount:Currency:150\",\n sum(outstanding_amount) as \"Outstanding Amount:Currency:150\",\n sum(grand_total) as \"Grand Total:Currency:150\"\nFROM\n `tabFees` \nGROUP BY\n student", 
  "ref_doctype": "Fees", 
  "report_name": "Student Fee Collection", 
  "report_type": "Query Report", 
diff --git a/erpnext/hr/doctype/employee_separation/employee_separation_list.js b/erpnext/hr/doctype/employee_separation/employee_separation_list.js
index 11487cc..76c58f5 100644
--- a/erpnext/hr/doctype/employee_separation/employee_separation_list.js
+++ b/erpnext/hr/doctype/employee_separation/employee_separation_list.js
@@ -1,5 +1,5 @@
 frappe.listview_settings['Employee Separation'] = {
-	add_fields: ["boarding_status", "employee_name", "date_of_joining", "department"],
+	add_fields: ["boarding_status", "employee_name", "department"],
 	filters:[["boarding_status","=", "Pending"]],
 	get_indicator: function(doc) {
 		return [__(doc.boarding_status), frappe.utils.guess_colour(doc.boarding_status), "status,=," + doc.boarding_status];
diff --git a/erpnext/hr/doctype/leave_application/leave_application.py b/erpnext/hr/doctype/leave_application/leave_application.py
index aca277e..6b7c0f7 100755
--- a/erpnext/hr/doctype/leave_application/leave_application.py
+++ b/erpnext/hr/doctype/leave_application/leave_application.py
@@ -187,7 +187,7 @@
 			self.total_leave_days = get_number_of_leave_days(self.employee, self.leave_type,
 				self.from_date, self.to_date, self.half_day, self.half_day_date)
 
-			if self.total_leave_days == 0:
+			if self.total_leave_days <= 0:
 				frappe.throw(_("The day(s) on which you are applying for leave are holidays. You need not apply for leave."))
 
 			if not is_lwp(self.leave_type):
diff --git a/erpnext/manufacturing/doctype/production_plan/production_plan.py b/erpnext/manufacturing/doctype/production_plan/production_plan.py
index 7d11ae4..24ce7d4 100644
--- a/erpnext/manufacturing/doctype/production_plan/production_plan.py
+++ b/erpnext/manufacturing/doctype/production_plan/production_plan.py
@@ -514,7 +514,7 @@
 		doc = frappe._dict(json.loads(doc))
 
 	doc['mr_items'] = []
-	po_items = doc['po_items'] if doc.get('po_items') else doc['items']
+	po_items = doc.get('po_items') if doc.get('po_items') else doc.get('items')
 
 	for data in po_items:
 		warehouse = None
@@ -533,10 +533,10 @@
 		else:
 			planned_qty = data.get('planned_qty')
 			bom_no = data.get('bom_no')
-			include_subcontracted_items = doc['include_subcontracted_items']
-			company = doc['company']
-			include_non_stock_items = doc['include_non_stock_items']
-			ignore_existing_ordered_qty = doc['ignore_existing_ordered_qty']
+			include_subcontracted_items = doc.get('include_subcontracted_items')
+			company = doc.get('company')
+			include_non_stock_items = doc.get('include_non_stock_items')
+			ignore_existing_ordered_qty = doc.get('ignore_existing_ordered_qty')
 		if not planned_qty:
 			frappe.throw(_("For row {0}: Enter Planned Qty").format(data.get('idx')))
 
diff --git a/erpnext/public/js/utils.js b/erpnext/public/js/utils.js
old mode 100644
new mode 100755
index dc989e2..0784b02
--- a/erpnext/public/js/utils.js
+++ b/erpnext/public/js/utils.js
@@ -126,7 +126,7 @@
 					'</div><div class="col-xs-6 small" style="margin-bottom:10px">Annual Billing: <b>'
 					+format_currency(company_wise_info[0].billing_this_year, company_wise_info[0].currency)+'</b></div>' +
 					'<div class="col-xs-6 small" style="margin-bottom:10px">Total Unpaid: <b>'
-					+format_currency(company_wise_info[0].billing_this_year, company_wise_info[0].currency)+'</b></div>'
+					+format_currency(company_wise_info[0].total_unpaid, company_wise_info[0].currency)+'</b></div>'
 				);
 			}
 		}
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note_list.js b/erpnext/stock/doctype/delivery_note/delivery_note_list.js
index 9631264..6a50c5a 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note_list.js
+++ b/erpnext/stock/doctype/delivery_note/delivery_note_list.js
@@ -1,5 +1,5 @@
 frappe.listview_settings['Delivery Note'] = {
-	add_fields: ["grand_total", "is_return", "per_billed", "status"],
+	add_fields: ["grand_total", "is_return", "per_billed", "status", "currency"],
 	get_indicator: function (doc) {
 		if (cint(doc.is_return) == 1) {
 			return [__("Return"), "darkgrey", "is_return,=,Yes"];
diff --git a/erpnext/stock/doctype/quality_inspection/quality_inspection.py b/erpnext/stock/doctype/quality_inspection/quality_inspection.py
index 36f6405..e0b7382 100644
--- a/erpnext/stock/doctype/quality_inspection/quality_inspection.py
+++ b/erpnext/stock/doctype/quality_inspection/quality_inspection.py
@@ -61,7 +61,7 @@
 	if filters.get("from"):
 		from frappe.desk.reportview import get_match_cond
 		mcond = get_match_cond(filters["from"])
-		cond = ""
+		cond, qi_condition = "", "and (quality_inspection is null or quality_inspection = '')"
 
 		if filters.get('from') in ['Purchase Invoice Item', 'Purchase Receipt Item']:
 			cond = """and item_code in (select name from `tabItem` where
@@ -72,9 +72,13 @@
 		elif filters.get('from') == 'Stock Entry Detail':
 			cond = """and s_warehouse is null"""
 
+		if filters.get('from') in ['Supplier Quotation Item']:
+			qi_condition = ""
+
 		return frappe.db.sql(""" select item_code from `tab{doc}`
 			where parent=%(parent)s and docstatus < 2 and item_code like %(txt)s
-			and (quality_inspection is null or quality_inspection = '')
-			{cond} {mcond} order by item_code limit {start}, {page_len}""".format(doc=filters.get('from'),
-			parent=filters.get('parent'), cond=cond, mcond=mcond, start=start, page_len = page_len),
+			{qi_condition} {cond} {mcond}
+			order by item_code limit {start}, {page_len}""".format(doc=filters.get('from'),
+			parent=filters.get('parent'), cond = cond, mcond = mcond, start = start,
+			page_len = page_len, qi_condition = qi_condition),
 			{'parent': filters.get('parent'), 'txt': "%%%s%%" % txt})