| // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors |
| // License: GNU General Public License v3. See license.txt |
| |
| window.doc={{ doc.as_json() }}; |
| |
| $(document).ready(function() { |
| new rfq(); |
| doc.supplier = "{{ doc.supplier }}" |
| doc.currency = "{{ doc.currency }}" |
| doc.number_format = "{{ doc.number_format }}" |
| doc.buying_price_list = "{{ doc.buying_price_list }}" |
| }); |
| |
| rfq = class rfq { |
| constructor(){ |
| this.onfocus_select_all(); |
| this.change_qty(); |
| this.change_rate(); |
| this.terms(); |
| this.submit_rfq(); |
| this.navigate_quotations(); |
| } |
| |
| onfocus_select_all(){ |
| $("input").click(function(){ |
| $(this).select(); |
| }) |
| } |
| |
| change_qty(){ |
| var me = this; |
| $('.rfq-items').on("change", ".rfq-qty", function(){ |
| me.idx = parseFloat($(this).attr('data-idx')); |
| me.qty = parseFloat($(this).val()) || 0; |
| me.rate = parseFloat($(repl('.rfq-rate[data-idx=%(idx)s]',{'idx': me.idx})).val()); |
| me.update_qty_rate(); |
| $(this).val(format_number(me.qty, doc.number_format, 2)); |
| }) |
| } |
| |
| change_rate(){ |
| var me = this; |
| $(".rfq-items").on("change", ".rfq-rate", function(){ |
| me.idx = parseFloat($(this).attr('data-idx')); |
| me.rate = parseFloat($(this).val()) || 0; |
| me.qty = parseFloat($(repl('.rfq-qty[data-idx=%(idx)s]',{'idx': me.idx})).val()); |
| me.update_qty_rate(); |
| $(this).val(format_number(me.rate, doc.number_format, 2)); |
| }) |
| } |
| |
| terms(){ |
| $(".terms").on("change", ".terms-feedback", function(){ |
| doc.terms = $(this).val(); |
| }) |
| } |
| |
| update_qty_rate(){ |
| var me = this; |
| doc.grand_total = 0.0; |
| $.each(doc.items, function(idx, data){ |
| if(data.idx == me.idx){ |
| data.qty = me.qty; |
| data.rate = me.rate; |
| data.amount = (me.rate * me.qty) || 0.0; |
| $(repl('.rfq-amount[data-idx=%(idx)s]',{'idx': me.idx})).text(format_number(data.amount, doc.number_format, 2)); |
| } |
| |
| doc.grand_total += flt(data.amount); |
| $('.tax-grand-total').text(format_number(doc.grand_total, doc.number_format, 2)); |
| }) |
| } |
| |
| submit_rfq(){ |
| $('.btn-sm').click(function(){ |
| frappe.freeze(); |
| frappe.call({ |
| type: "POST", |
| method: "erpnext.buying.doctype.request_for_quotation.request_for_quotation.create_supplier_quotation", |
| args: { |
| doc: doc |
| }, |
| btn: this, |
| callback: function(r){ |
| frappe.unfreeze(); |
| if(r.message){ |
| $('.btn-sm').hide() |
| window.location.href = "/supplier-quotations/" + encodeURIComponent(r.message); |
| } |
| } |
| }) |
| }) |
| } |
| |
| navigate_quotations() { |
| $('.quotations').click(function(){ |
| name = $(this).attr('idx') |
| window.location.href = "/quotations/" + encodeURIComponent(name); |
| }) |
| } |
| } |