feat: Supplier Quotation UX fixes
This commit is contained in:
		
							parent
							
								
									db8764a520
								
							
						
					
					
						commit
						4993ef19d6
					
				| @ -179,7 +179,7 @@ frappe.ui.form.on("Request for Quotation",{ | ||||
| 			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 | ||||
|  | ||||
| @ -214,14 +214,14 @@ def get_supplier_contacts(doctype, txt, searchfield, start, page_len, filters): | ||||
| 		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, { | ||||
|  | ||||
| @ -8,8 +8,7 @@ erpnext.buying.SupplierQuotationController = erpnext.buying.BuyingController.ext | ||||
| 	setup: function() { | ||||
| 		this.frm.custom_make_buttons = { | ||||
| 			'Purchase Order': 'Purchase Order', | ||||
| 			'Quotation': 'Quotation', | ||||
| 			'Subscription': 'Subscription' | ||||
| 			'Quotation': 'Quotation' | ||||
| 		} | ||||
| 
 | ||||
| 		this._super(); | ||||
| @ -28,12 +27,6 @@ erpnext.buying.SupplierQuotationController = erpnext.buying.BuyingController.ext | ||||
| 			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 @@ erpnext.buying.SupplierQuotationController = erpnext.buying.BuyingController.ext | ||||
| 						} | ||||
| 					}) | ||||
| 				}, __("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")); | ||||
| 		} | ||||
| 	}, | ||||
| 
 | ||||
|  | ||||
| @ -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, | ||||
| @ -289,14 +293,6 @@ | ||||
|    "print_hide": 1, | ||||
|    "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", | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user