diff --git a/erpnext/buying/dashboard_fixtures.py b/erpnext/buying/dashboard_fixtures.py
index 0bd9a1f..291abb8 100644
--- a/erpnext/buying/dashboard_fixtures.py
+++ b/erpnext/buying/dashboard_fixtures.py
@@ -3,7 +3,8 @@
 
 import frappe
 import json
-
+from frappe.utils import nowdate
+from erpnext.accounts.utils import get_fiscal_year
 
 def get_data():
 	return frappe._dict({
@@ -23,108 +24,172 @@
 	return None
 
 company = frappe.get_doc("Company", get_company_for_dashboards())
+fiscal_year = get_fiscal_year(nowdate(), as_dict=1)
+fiscal_year_name = fiscal_year.get("name")
+start_date = str(fiscal_year.get("year_start_date"))
+end_date = str(fiscal_year.get("year_end_date"))
 
 def get_dashboards():
 	return [{
 		"name": "Buying",
 		"dashboard_name": "Buying",
 		"charts": [
-			{ "chart": "Purchase Analytics", "width": "Full"},
-			{ "chart": "Material Request Purchase Analysis", "width": "Half"},
+			{ "chart": "Top Suppliers", "width": "Full"},
+			{ "chart": "Material Request Analysis", "width": "Half"},
 			{ "chart": "Purchase Order Analysis", "width": "Half"},
-			{ "chart": "Requested Items to Order", "width": "Full"}
+			{ "chart": "Purchase Order Trends", "width": "Full"}
+		],
+		"cards": [
+			{ "card": "Purchase Orders to Receive"},
+			{ "card": "Purchase Order Expenses"},
+			{ "card": "Active Suppliers"},
+			{ "card": "Active Supplier Quotations"}
 		]
 	}]
 
 def get_charts():
 	return [
 		{
-			"name": "Purchase Analytics",
-			"doctype": "Dashboard Chart",
-			"owner": "Administrator",
-			"report_name": "Purchase Analytics",
-			"filters_json": json.dumps({
-				"tree_type": "Item",
-				"doc_type": "Purchase Receipt",
-				"value_quantity": "Value",
-				"from_date": "2020-03-01",
-				"to_date": "2020-07-31",
-				"company": company.name,
-				"range": "Weekly"
-				}),
-			"x_field": "entity",
-			"type": "Bar",
-			'timeseries': 0,
-			"chart_type": "Report",
-			"chart_name": "Purchase Analytics",
-			"custom_options": json.dumps({
-				"x_field": "entity",
-				"chart_type": "Bar",
-				"y_axis_fields": [{"idx": 1, "__islocal": "true", "y_field": "total"}],
-				"y_fields": ["total"]
-			})
-		},
-		{
-			"name": "Material Request Purchase Analysis",
-			"doctype": "Dashboard Chart",
-			"owner": "Administrator",
-			"document_type": "Material Request",
-			"filters_json": '[["Material Request","status","not in",["Draft","Cancelled","Stopped",null],false],["Material Request","material_request_type","=","Purchase",false],["Material Request","company","=", "{company}", false]]'.format(company=company.name),
-			"is_custom": 0,
-			"type": "Donut",
-			"timeseries": 0,
-			"chart_type": "Group By",
-			"group_by_based_on": "status",
-			"chart_name": "Material Request Purchase Analysis",
-			"group_by_type": "Count",
-			"custom_options": json.dumps({"height": 300})
-
-		},
-		{
 			"name": "Purchase Order Analysis",
-			"doctype": "Dashboard Chart",
-			"owner": "Administrator",
-			"report_name": "Purchase Order Analysis",
-			"filters_json": json.dumps({
-				"company": company.name,
-				"from_date": "2020-04-04",
-				"to_date": "2020-07-04",
-				"chart_based_on": "Quantity"
-			}),
-			"is_custom": 1,
-			"type": "Donut",
-			"timeseries": 0,
-			"chart_type": "Report",
 			"chart_name": "Purchase Order Analysis",
+			"chart_type": "Report",
 			"custom_options": json.dumps({
 				"type": "donut",
 				"height": 300,
 				"axisOptions": {"shortenYAxisNumbers": 1}
-			})
-		},
-		{
-			"name": "Requested Items to Order",
+			}),
 			"doctype": "Dashboard Chart",
-			"owner": "Administrator",
-			"report_name": "Requested Items to Order",
 			"filters_json": json.dumps({
 				"company": company.name,
-				"from_date": "2020-04-01",
-				"to_date": "2020-07-01",
-				"group_by_mr": 0
+				"from_date": start_date,
+				"to_date": end_date
 			}),
 			"is_custom": 1,
-			"type": "Bar",
-			"timeseries": 0,
+			"is_public": 1,
+			"owner": "Administrator",
+			"report_name": "Purchase Order Analysis",
+			"type": "Donut"
+		},
+		{
+			"name": "Material Request Analysis",
+			"chart_name": "Material Request Analysis",
+			"chart_type": "Group By",
+			"custom_options": json.dumps({"height": 300}),
+			"doctype": "Dashboard Chart",
+			"document_type": "Material Request",
+			"filters_json": json.dumps(
+				[["Material Request", "status", "not in", ["Draft", "Cancelled", "Stopped", None], False],
+				["Material Request", "material_request_type", "=", "Purchase", False],
+				["Material Request", "company", "=", company.name, False]]
+			),
+			"group_by_based_on": "status",
+			"group_by_type": "Count",
+			"is_custom": 0,
+			"is_public": 1,
+			"number_of_groups": 0,
+			"owner": "Administrator",
+			"type": "Donut"
+		},
+		{
+			"name": "Purchase Order Trends",
+			"chart_name": "Purchase Order Trends",
 			"chart_type": "Report",
-			"chart_name": "Requested Items to Order",
 			"custom_options": json.dumps({
-				"type": "bar",
-				"barOptions": {"stacked": 1},
-				"axisOptions": {"shortenYAxisNumbers": 1}
-			})
+				"type": "line",
+				"regionFill": 1,
+				"axisOptions": {"shortenYAxisNumbers": 1},
+				"tooltipOptions": {}
+			}),
+			"doctype": "Dashboard Chart",
+			"filters_json": json.dumps({
+				"company": company.name,
+				"period": "Monthly",
+				"fiscal_year": fiscal_year_name,
+				"period_based_on": "posting_date",
+				"based_on": "Item"
+			}),
+			"is_custom": 1,
+			"is_public": 1,
+			"owner": "Administrator",
+			"report_name": "Purchase Order Trends",
+			"type": "Line"
+		},
+		{
+			"name": "Top Suppliers",
+			"chart_name": "Top Suppliers",
+			"chart_type": "Report",
+			"doctype": "Dashboard Chart",
+			"filters_json": json.dumps({
+				"company": company.name,
+				"period": "Monthly",
+				"fiscal_year": fiscal_year_name,
+				"period_based_on": "posting_date",
+				"based_on": "Supplier"
+			}),
+			"is_custom": 1,
+			"is_public": 1,
+			"owner": "Administrator",
+			"report_name": "Purchase Receipt Trends",
+			"type": "Bar"
 		}
  	]
 
 def get_number_cards():
-	return [{}]
\ No newline at end of file
+	return [
+		{
+			"name": "Purchase Order Expenses",
+			"aggregate_function_based_on": "base_grand_total",
+			"doctype": "Number Card",
+			"document_type": "Purchase Order",
+			"filters_json": json.dumps(
+				[["Purchase Order", "transaction_date", "Between", [start_date,end_date], False],
+				["Purchase Order", "status", "not in", ["Draft","On Hold","Cancelled","Closed", None], False],
+				["Purchase Order", "company", "=", company.name, False]]
+			),
+			"function": "Sum",
+			"is_public": 1,
+			"label": "Purchase Order Expenses",
+			"owner": "Administrator",
+			"show_percentage_stats": 1,
+			"stats_time_interval": "Monthly"
+		},
+		{
+			"name": "Purchase Orders to Receive",
+			"doctype": "Number Card",
+			"document_type": "Purchase Order",
+			"filters_json": json.dumps(
+				[["Purchase Order", "status", "in", ["To Receive and Bill", "To Receive", None], False],
+				["Purchase Order", "company", "=", company.name, False]]
+			),
+			"function": "Count",
+			"is_public": 1,
+			"label": "Purchase Orders to Receive",
+			"owner": "Administrator",
+			"show_percentage_stats": 1,
+			"stats_time_interval": "Weekly"
+		},
+		{
+			"name": "Active Suppliers",
+			"doctype": "Number Card",
+			"document_type": "Supplier",
+			"filters_json": json.dumps([["Supplier", "disabled", "=", "0"]]),
+			"function": "Count",
+			"is_public": 1,
+			"label": "Active Suppliers",
+			"owner": "Administrator",
+			"show_percentage_stats": 1,
+			"stats_time_interval": "Monthly"
+		},
+		{
+			"name": "Active Supplier Quotations",
+			"doctype": "Number Card",
+			"document_type": "Supplier Quotation",
+			"filters_json": json.dumps([["Supplier Quotation", "status", "=", "Submitted", False]]),
+			"function": "Count",
+			"is_public": 1,
+			"label": "Active Supplier Quotations",
+			"owner": "Administrator",
+			"show_percentage_stats": 1,
+			"stats_time_interval": "Monthly"
+		}
+	]
\ No newline at end of file
diff --git a/erpnext/buying/doctype/buying_settings/buying_settings.js b/erpnext/buying/doctype/buying_settings/buying_settings.js
index 5a5afa4..a27950a 100644
--- a/erpnext/buying/doctype/buying_settings/buying_settings.js
+++ b/erpnext/buying/doctype/buying_settings/buying_settings.js
@@ -16,7 +16,7 @@
 	{
 		fieldname: "buying_price_list",
 		title: "Default Buying Price List",
-		description: __("Configure the default Price List when creating a new Buying transaction, the default is set as 'Standard Buying'. Item prices will be fetched from this Price List. You can modify the 'Price List' by using the arrow at the right-end of the field to change the currency and country.")
+		description: __("Configure the default Price List when creating a new Buying transaction, the default is set as 'Standard Buying'. Item prices will be fetched from this Price List.")
 	},
 	{
 		fieldname: "po_required",
diff --git a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.json b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.json
index 3bc441a..7db1516 100644
--- a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.json
+++ b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.json
@@ -761,7 +761,7 @@
    "no_copy": 1,
    "oldfieldname": "status",
    "oldfieldtype": "Select",
-   "options": "\nDraft\nSubmitted\nStopped\nCancelled",
+   "options": "\nDraft\nSubmitted\nStopped\nCancelled\nExpired",
    "print_hide": 1,
    "read_only": 1,
    "reqd": 1,
@@ -803,7 +803,7 @@
  "idx": 29,
  "is_submittable": 1,
  "links": [],
- "modified": "2020-04-15 11:44:52.958022",
+ "modified": "2020-05-15 21:24:12.639482",
  "modified_by": "Administrator",
  "module": "Buying",
  "name": "Supplier Quotation",
diff --git a/erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.js b/erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.js
index 24abb6d..701da43 100644
--- a/erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.js
+++ b/erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.js
@@ -59,14 +59,6 @@
 			}
 		},
 		{
-			"fieldname": "chart_based_on",
-			"label": __("Chart Based On"),
-			"fieldtype": "Select",
-			"width": "80",
-			"options": "Quantity\nAmount",
-			"default": "Quantity"
-		},
-		{
 			"fieldname": "group_by_po",
 			"label": __("Group by Purchase Order"),
 			"fieldtype": "Check",
diff --git a/erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.json b/erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.json
index 196aaae..5ba3101 100644
--- a/erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.json
+++ b/erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.json
@@ -1,5 +1,5 @@
 {
- "add_total_row": 0,
+ "add_total_row": 1,
  "creation": "2020-05-04 18:41:28.625119",
  "disable_prepared_report": 0,
  "disabled": 0,
@@ -7,7 +7,7 @@
  "doctype": "Report",
  "idx": 0,
  "is_standard": "Yes",
- "modified": "2020-05-04 18:41:28.625119",
+ "modified": "2020-05-15 20:57:52.623455",
  "modified_by": "Administrator",
  "module": "Buying",
  "name": "Purchase Order Analysis",
diff --git a/erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.py b/erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.py
index 96e2fc8..497ce68 100644
--- a/erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.py
+++ b/erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.py
@@ -82,10 +82,9 @@
 	return data
 
 def prepare_data(data, filters):
-	completed, pending = 0,0
-	chart_based_on = filters.get("chart_based_on")
-	pending_field = "pending_qty" if chart_based_on == "Quantity" else "pending_amount"
-	completed_field = "received_qty" if chart_based_on == "Quantity" else "billed_amount"
+	completed, pending = 0, 0
+	pending_field =  "pending_amount"
+	completed_field = "billed_amount"
 
 	if filters.get("group_by_po"):
 		purchase_order_map = {}
@@ -116,7 +115,7 @@
 				for field in fields:
 					po_row[field] = flt(row[field]) + flt(po_row[field])
 
-	chart_data = prepare_chart_data(chart_based_on, pending, completed)
+	chart_data = prepare_chart_data(pending, completed)
 
 	if filters.get("group_by_po"):
 		data = []
@@ -126,8 +125,8 @@
 
 	return data, chart_data
 
-def prepare_chart_data(chart_based_on, pending, completed):
-	labels = ["Qty to Receive","Received Qty"] if chart_based_on == "Quantity" else ["Amount to Bill","Billed Amount"]
+def prepare_chart_data(pending, completed):
+	labels = ["Amount to Bill", "Billed Amount"]
 
 	return {
 		"data" : {
diff --git a/erpnext/buying/report/purchase_order_trends/purchase_order_trends.py b/erpnext/buying/report/purchase_order_trends/purchase_order_trends.py
index 888676c..011760d 100644
--- a/erpnext/buying/report/purchase_order_trends/purchase_order_trends.py
+++ b/erpnext/buying/report/purchase_order_trends/purchase_order_trends.py
@@ -3,6 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
+from frappe import _
 from erpnext.controllers.trends	import get_columns,get_data
 
 def execute(filters=None):
@@ -10,5 +11,45 @@
 	data = []
 	conditions = get_columns(filters, "Purchase Order")
 	data = get_data(filters, conditions)
+	chart_data = get_chart_data(data, conditions, filters)
 
-	return conditions["columns"], data 
\ No newline at end of file
+	return conditions["columns"], data, None, chart_data
+
+def get_chart_data(data, conditions, filters):
+	if not (data and conditions):
+		return []
+
+	datapoints = []
+
+	start = 2 if filters.get("based_on") in ["Item", "Supplier"] else 1
+	if filters.get("group_by"):
+		start += 1
+
+	# fetch only periodic columns as labels
+	columns = conditions.get("columns")[start:-2][1::2]
+	labels = [column.split(':')[0] for column in columns]
+	datapoints = [0] * len(labels)
+
+	for row in data:
+		# If group by filter, don't add first row of group (it's already summed)
+		if not row[start-1]:
+			continue
+		# Remove None values and compute only periodic data
+		row = [x if x else 0 for x in row[start:-2]]
+		row  = row[1::2]
+
+		for i in range(len(row)):
+			datapoints[i] += row[i]
+
+	return {
+		"data" : {
+			"labels" : labels,
+			"datasets" : [
+				{
+					"name" : _("{0}").format(filters.get("period")) + _(" Revenue"),
+					"values" : datapoints
+				}
+			]
+		},
+		"type" : "line"
+	}
\ No newline at end of file
diff --git a/erpnext/public/js/purchase_trends_filters.js b/erpnext/public/js/purchase_trends_filters.js
index cd767f5..c786a86 100644
--- a/erpnext/public/js/purchase_trends_filters.js
+++ b/erpnext/public/js/purchase_trends_filters.js
@@ -51,7 +51,10 @@
 				{ "value": "Supplier Group", "label": __("Supplier Group") },
 				{ "value": "Project", "label": __("Project") }
 			],
-			"default": "Item"
+			"default": "Item",
+			"dashboard_config": {
+				"read_only": 1
+			}
 		},
 		{
 			"fieldname":"group_by",
