feat: Supplier Quotation UX fixes
diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
index 4a937f7..cf5d7cd 100644
--- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
+++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
@@ -179,7 +179,7 @@
 			dialog.hide();
 			return frappe.call({
 				type: "GET",
-				method: "erpnext.buying.doctype.request_for_quotation.request_for_quotation.make_supplier_quotation",
+				method: "erpnext.buying.doctype.request_for_quotation.request_for_quotation.make_supplier_quotation_from_rfq",
 				args: {
 					"source_name": doc.name,
 					"for_supplier": args.supplier
diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
index b54a585..fd04b0d 100644
--- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
+++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
@@ -214,14 +214,14 @@
 		and `tabDynamic Link`.link_name like %(txt)s) and `tabContact`.name = `tabDynamic Link`.parent
 		limit %(start)s, %(page_len)s""", {"start": start, "page_len":page_len, "txt": "%%%s%%" % txt, "name": filters.get('supplier')})
 
-# This method is used to make supplier quotation from material request form.
 @frappe.whitelist()
-def make_supplier_quotation(source_name, for_supplier, target_doc=None):
+def make_supplier_quotation_from_rfq(source_name, target_doc=None, for_supplier=None):
 	def postprocess(source, target_doc):
-		target_doc.supplier = for_supplier
-		args = get_party_details(for_supplier, party_type="Supplier", ignore_permissions=True)
-		target_doc.currency = args.currency or get_party_account_currency('Supplier', for_supplier, source.company)
-		target_doc.buying_price_list = args.buying_price_list or frappe.db.get_value('Buying Settings', None, 'buying_price_list')
+		if for_supplier:
+			target_doc.supplier = for_supplier
+			args = get_party_details(for_supplier, party_type="Supplier", ignore_permissions=True)
+			target_doc.currency = args.currency or get_party_account_currency('Supplier', for_supplier, source.company)
+			target_doc.buying_price_list = args.buying_price_list or frappe.db.get_value('Buying Settings', None, 'buying_price_list')
 		set_missing_values(source, target_doc)
 
 	doclist = get_mapped_doc("Request for Quotation", source_name, {
diff --git a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js
index 1b8b404..4a2a078 100644
--- a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js
+++ b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js
@@ -8,8 +8,7 @@
 	setup: function() {
 		this.frm.custom_make_buttons = {
 			'Purchase Order': 'Purchase Order',
-			'Quotation': 'Quotation',
-			'Subscription': 'Subscription'
+			'Quotation': 'Quotation'
 		}
 
 		this._super();
@@ -28,12 +27,6 @@
 			cur_frm.page.set_inner_btn_group_as_primary(__('Create'));
 			cur_frm.add_custom_button(__("Quotation"), this.make_quotation,
 				__('Create'));
-
-			if(!this.frm.doc.auto_repeat) {
-				cur_frm.add_custom_button(__('Subscription'), function() {
-					erpnext.utils.make_subscription(me.frm.doc.doctype, me.frm.doc.name)
-				}, __('Create'))
-			}
 		}
 		else if (this.frm.doc.docstatus===0) {
 
@@ -54,6 +47,25 @@
 						}
 					})
 				}, __("Get items from"));
+
+			this.frm.add_custom_button(__("Request for Quotation"),
+			function() {
+				if (!me.frm.doc.supplier) {
+					frappe.throw({message:__("Please select a Supplier"), title:__("Mandatory")})
+				}
+				erpnext.utils.map_current_doc({
+					method: "erpnext.buying.doctype.request_for_quotation.request_for_quotation.make_supplier_quotation_from_rfq",
+					source_doctype: "Request for Quotation",
+					target: me.frm,
+					setters: {
+						company: me.frm.doc.company,
+						transaction_date: null
+					},
+					get_query_filters: {
+						docstatus: 1,
+					}
+				})
+			}, __("Get items from"));
 		}
 	},
 
diff --git a/erpnext/buying/doctype/supplier_quotation_item/supplier_quotation_item.json b/erpnext/buying/doctype/supplier_quotation_item/supplier_quotation_item.json
index b50e834..7d62435 100644
--- a/erpnext/buying/doctype/supplier_quotation_item/supplier_quotation_item.json
+++ b/erpnext/buying/doctype/supplier_quotation_item/supplier_quotation_item.json
@@ -12,6 +12,8 @@
   "item_name",
   "column_break_3",
   "lead_time_days",
+  "expected_delivery_date",
+  "is_free_item",
   "section_break_5",
   "description",
   "item_group",
@@ -19,20 +21,18 @@
   "col_break1",
   "image",
   "image_view",
-  "manufacture_details",
-  "manufacturer",
-  "column_break_15",
-  "manufacturer_part_no",
   "quantity_and_rate",
   "qty",
   "stock_uom",
-  "price_list_rate",
-  "discount_percentage",
-  "discount_amount",
   "col_break2",
   "uom",
   "conversion_factor",
   "stock_qty",
+  "sec_break_price_list",
+  "price_list_rate",
+  "discount_percentage",
+  "discount_amount",
+  "col_break_price_list",
   "base_price_list_rate",
   "sec_break1",
   "rate",
@@ -42,7 +42,6 @@
   "base_rate",
   "base_amount",
   "pricing_rules",
-  "is_free_item",
   "section_break_24",
   "net_rate",
   "net_amount",
@@ -56,7 +55,6 @@
   "weight_uom",
   "warehouse_and_reference",
   "warehouse",
-  "project",
   "prevdoc_doctype",
   "material_request",
   "sales_order",
@@ -65,13 +63,19 @@
   "material_request_item",
   "request_for_quotation_item",
   "item_tax_rate",
+  "manufacture_details",
+  "manufacturer",
+  "column_break_15",
+  "manufacturer_part_no",
+  "ad_sec_break",
+  "project",
   "section_break_44",
   "page_break"
  ],
  "fields": [
   {
    "bold": 1,
-   "columns": 4,
+   "columns": 2,
    "fieldname": "item_code",
    "fieldtype": "Link",
    "in_list_view": 1,
@@ -107,7 +111,7 @@
   {
    "fieldname": "lead_time_days",
    "fieldtype": "Int",
-   "label": "Lead Time in days"
+   "label": "Supplier Lead Time (days)"
   },
   {
    "collapsible": 1,
@@ -162,7 +166,6 @@
   {
    "fieldname": "stock_uom",
    "fieldtype": "Link",
-   "in_list_view": 1,
    "label": "Stock UOM",
    "options": "UOM",
    "print_hide": 1,
@@ -196,6 +199,7 @@
   {
    "fieldname": "uom",
    "fieldtype": "Link",
+   "in_list_view": 1,
    "label": "UOM",
    "options": "UOM",
    "print_hide": 1,
@@ -290,14 +294,6 @@
    "read_only": 1
   },
   {
-   "default": "0",
-   "fieldname": "is_free_item",
-   "fieldtype": "Check",
-   "label": "Is Free Item",
-   "print_hide": 1,
-   "read_only": 1
-  },
-  {
    "fieldname": "section_break_24",
    "fieldtype": "Section Break"
   },
@@ -528,12 +524,43 @@
   {
    "fieldname": "column_break_15",
    "fieldtype": "Column Break"
+  },
+  {
+   "fieldname": "sec_break_price_list",
+   "fieldtype": "Section Break"
+  },
+  {
+   "fieldname": "col_break_price_list",
+   "fieldtype": "Column Break"
+  },
+  {
+   "collapsible": 1,
+   "fieldname": "ad_sec_break",
+   "fieldtype": "Section Break",
+   "label": "Accounting Dimensions"
+  },
+  {
+   "default": "0",
+   "depends_on": "is_free_item",
+   "fieldname": "is_free_item",
+   "fieldtype": "Check",
+   "label": "Is Free Item",
+   "print_hide": 1,
+   "read_only": 1
+  },
+  {
+   "allow_on_submit": 1,
+   "bold": 1,
+   "fieldname": "expected_delivery_date",
+   "fieldtype": "Date",
+   "label": "Expected Delivery Date"
   }
  ],
  "idx": 1,
+ "index_web_pages_for_search": 1,
  "istable": 1,
  "links": [],
- "modified": "2020-04-07 18:35:51.175947",
+ "modified": "2020-10-01 16:34:39.703033",
  "modified_by": "Administrator",
  "module": "Buying",
  "name": "Supplier Quotation Item",