diff options
| author | Damien Bouvy <dbo@odoo.com> | 2015-04-16 12:11:02 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2015-06-15 14:57:16 +0200 |
| commit | de8d90e12edfb9f965e7c145c48a6f0c86bb7d32 (patch) | |
| tree | 2e67c00fb10a0fe02cc94cacd1bf61747a538a34 /addons/website_quote/static/src/js | |
| parent | 3dafbe9aa8777e5f33c51eea8a72229b55f11249 (diff) | |
[IMP] website_quote: add payment management
Until now, you could only sign and confirm a sale order from the frontend.
From now on, you can also pay sale orders if the 'Immediate Payment'
option is checked on the sale order.
Diffstat (limited to 'addons/website_quote/static/src/js')
| -rw-r--r-- | addons/website_quote/static/src/js/website_quotation.js | 73 |
1 files changed, 54 insertions, 19 deletions
diff --git a/addons/website_quote/static/src/js/website_quotation.js b/addons/website_quote/static/src/js/website_quotation.js index feb1901677a..61d54e8a29a 100644 --- a/addons/website_quote/static/src/js/website_quotation.js +++ b/addons/website_quote/static/src/js/website_quotation.js @@ -57,34 +57,38 @@ this.$("#signature").jSignature('reset'); }, submitForm: function(ev){ - ev.preventDefault(); // extract data var self = this; var href = self.$el.find('form').attr("action"); - var order_id = href.match(/accept\/([0-9]+)/); + var action = href.match(/quote\/([a-z]+)/); + var order_id = href.match(/quote\/[a-z]+\/([0-9]+)/); var token = href.match(/token=(.*)/); if (token){ token = token[1]; } - // process : display errors, or submit - var signer_name = self.$("#name").val(); - var signature = self.$("#signature").jSignature("getData",'image'); - var is_empty = signature ? this.empty_sign[1] == signature[1] : false; - self.$('#signer').toggleClass('has-error', !signer_name); - self.$('#drawsign').toggleClass('panel-danger', is_empty).toggleClass('panel-default', !is_empty); - if (is_empty || ! signer_name){ + + if (action[1]=='accept') { + ev.preventDefault(); + // process : display errors, or submit + var signer_name = self.$("#name").val(); + var signature = self.$("#signature").jSignature("getData",'image'); + var is_empty = signature ? this.empty_sign[1] == signature[1] : false; + self.$('#signer').toggleClass('has-error', !signer_name); + self.$('#drawsign').toggleClass('panel-danger', is_empty).toggleClass('panel-default', !is_empty); + if (is_empty || ! signer_name){ + return false; + } + openerp.jsonRpc("/quote/"+action[1], 'call', { + 'order_id': parseInt(order_id[1]), + 'token': token, + 'signer': signer_name, + 'sign': signature?JSON.stringify(signature[1]):false, + }).then(function (data) { + self.$el.modal('hide'); + window.location.href = '/quote/'+order_id[1]+'/'+token+'?message=3'; + }); return false; } - openerp.jsonRpc("/quote/accept", 'call', { - 'order_id': parseInt(order_id[1]), - 'token': token, - 'signer': signer_name, - 'sign': signature?JSON.stringify(signature[1]):false, - }).then(function (data) { - self.$el.modal('hide'); - window.location.href = '/quote/'+order_id[1]+'/'+token+'?message=3'; - }); - return false; }, }); @@ -155,3 +159,34 @@ }); }()); + +// dbo note: website_sale code for payment +// if we standardize payment somehow, this should disappear +$(document).ready(function () { + + // When choosing an acquirer, display its Pay Now button + var $payment = $("#payment_method"); + $payment.on("click", "input[name='acquirer']", function (ev) { + var payment_id = $(ev.currentTarget).val(); + $("div.oe_quote_acquirer_button[data-id]", $payment).addClass("hidden"); + $("div.oe_quote_acquirer_button[data-id='"+payment_id+"']", $payment).removeClass("hidden"); + }) + .find("input[name='acquirer']:checked").click(); + + // When clicking on payment button: create the tx using json then continue to the acquirer + $payment.on("click", 'button[type="submit"],button[name="submit"]', function (ev) { + ev.preventDefault(); + ev.stopPropagation(); + var $form = $(ev.currentTarget).parents('form'); + var acquirer_id = $(ev.currentTarget).parents('div.oe_quote_acquirer_button').first().data('id'); + if (! acquirer_id) { + return false; + } + var href = $(location).attr("href"); + var order_id = href.match(/quote\/([0-9]+)/)[1]; + openerp.jsonRpc('/quote/' + order_id +'/transaction/' + acquirer_id, 'call', {}).then(function (data) { + $form.submit(); + }); + }); + +}); |
