From a26f685b9f6771a4b0c33e6f434bb30931b7dc85 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Mon, 3 Oct 2016 19:05:18 +0530 Subject: [PATCH] [Enhancement] Added supplier quotation link on rfq --- .../request_for_quotation.py | 12 --------- erpnext/templates/includes/rfq.js | 8 ++++++ erpnext/templates/pages/rfq.html | 25 +++++++++++++++++++ erpnext/templates/pages/rfq.py | 18 ++++++++++++- 4 files changed, 50 insertions(+), 13 deletions(-) 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 482a2aeaeb..78af1efc12 100644 --- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py +++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py @@ -192,8 +192,6 @@ def create_supplier_quotation(doc): if isinstance(doc, basestring): doc = json.loads(doc) - validate_duplicate_supplier_quotation(doc) - try: sq_doc = frappe.get_doc({ "doctype": "Supplier Quotation", @@ -245,13 +243,3 @@ def get_rfq_doc(doctype, name, supplier_idx): args = doc.get('suppliers')[cint(supplier_idx) - 1] doc.update_supplier_part_no(args) return doc - -@frappe.whitelist() -def validate_duplicate_supplier_quotation(args): - data = frappe.db.sql("""select sq.name as name from `tabSupplier Quotation` sq, - `tabSupplier Quotation Item` sqi where sqi.parent = sq.name and sq.supplier = %(supplier)s - and sqi.request_for_quotation = %(rfq)s and sq.docstatus < 2""", - {'supplier': args.get('supplier'), 'rfq': args.get('name')}, as_dict=True) - - if data and data[0] and data[0].name: - frappe.throw(_("Already supplier quotation has created")) diff --git a/erpnext/templates/includes/rfq.js b/erpnext/templates/includes/rfq.js index 42dcc3a6c7..46357d4348 100644 --- a/erpnext/templates/includes/rfq.js +++ b/erpnext/templates/includes/rfq.js @@ -18,6 +18,7 @@ rfq = Class.extend({ this.change_rate(); this.terms(); this.submit_rfq(); + this.navigate_quotations(); }, onfocus_select_all: function(){ @@ -89,5 +90,12 @@ rfq = Class.extend({ } }) }) + }, + + navigate_quotations: function() { + $('.quotations').click(function(){ + name = $(this).attr('idx') + window.location.href = "/quotations/" + encodeURIComponent(name); + }) } }) diff --git a/erpnext/templates/pages/rfq.html b/erpnext/templates/pages/rfq.html index a2b6a66e1c..591d046d35 100644 --- a/erpnext/templates/pages/rfq.html +++ b/erpnext/templates/pages/rfq.html @@ -68,6 +68,31 @@ +
+
+
+
+

{{ _("Quotations: ") }}

+ {% if doc.rfq_links %} + {% for d in doc.rfq_links %} +
+
+ +
+ {{d.status}} +
+
+ {{d.transaction_date}} +
+
+
+ {% endfor %} + {% endif %} +
+
+
diff --git a/erpnext/templates/pages/rfq.py b/erpnext/templates/pages/rfq.py index decae417a6..abc28904c3 100644 --- a/erpnext/templates/pages/rfq.py +++ b/erpnext/templates/pages/rfq.py @@ -4,6 +4,7 @@ from __future__ import unicode_literals import frappe from frappe import _ +from frappe.utils import formatdate from erpnext.controllers.website_list_for_contact import (get_customers_suppliers, get_party_details) @@ -13,6 +14,7 @@ def get_context(context): context.doc = frappe.get_doc(frappe.form_dict.doctype, frappe.form_dict.name) context.parents = frappe.form_dict.parents context.doc.supplier = get_supplier() + context.doc.rfq_links = get_link_quotation(context.doc.supplier, context.doc.name) unauthorized_user(context.doc.supplier) update_supplier_details(context) context["title"] = frappe.form_dict.name @@ -41,4 +43,18 @@ def update_supplier_details(context): context.doc.currency = supplier_doc.default_currency or frappe.db.get_value("Company", context.doc.company, "default_currency") context.doc.currency_symbol = frappe.db.get_value("Currency", context.doc.currency, "symbol") context.doc.number_format = frappe.db.get_value("Currency", context.doc.currency, "number_format") - context.doc.buying_price_list = supplier_doc.default_price_list or '' \ No newline at end of file + context.doc.buying_price_list = supplier_doc.default_price_list or '' + +def get_link_quotation(supplier, rfq): + quotation = frappe.db.sql(""" select distinct `tabSupplier Quotation Item`.parent as name, + `tabSupplier Quotation`.status, `tabSupplier Quotation`.transaction_date from + `tabSupplier Quotation Item`, `tabSupplier Quotation` where `tabSupplier Quotation`.docstatus < 2 and + `tabSupplier Quotation Item`.request_for_quotation =%(name)s and + `tabSupplier Quotation Item`.parent = `tabSupplier Quotation`.name and + `tabSupplier Quotation`.supplier = %(supplier)s order by `tabSupplier Quotation`.creation desc""", + {'name': rfq, 'supplier': supplier}, as_dict=1) + + for data in quotation: + data.transaction_date = formatdate(data.transaction_date) + + return quotation or None