summaryrefslogtreecommitdiff
path: root/addons/website_quote/static/src/js
diff options
context:
space:
mode:
authorDamien Bouvy <dbo@odoo.com>2015-04-16 12:11:02 +0200
committerChristophe Simonis <chs@odoo.com>2015-06-15 14:57:16 +0200
commitde8d90e12edfb9f965e7c145c48a6f0c86bb7d32 (patch)
tree2e67c00fb10a0fe02cc94cacd1bf61747a538a34 /addons/website_quote/static/src/js
parent3dafbe9aa8777e5f33c51eea8a72229b55f11249 (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.js73
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();
+ });
+ });
+
+});