Skip to content
Snippets Groups Projects
Commit e7011963 authored by Nasreddin (bon)'s avatar Nasreddin (bon)
Browse files

[FIX] payment: User can pay without selecting a delivery method


Issue

	- Install "eCommerce" and "Inventoy"
	- Activate "Fedex" delivery connector in settings
	- Publish "Free Delivery" and "Fedex US" delivery method
	- Put the "FedEx" one above the "Free Delivery"
	- Go to shop and add an item to cart
	- Set an adress with no ZIP code and checkout
	- Select a payment methode and pay

	Order is generated without selecting a delivery method
	Same behavior happend when using only "Fedex" as delivery
	method.

Cause

	The flow make the `payment.payment_form` trigger start after
	`website_sale_delivery.checkout` JS module.
	In 'start' function of `payment.payment_form`, the `disabled`
	attribut is removed from button if no checkbox_cgv is present
	and therefore break the `disabling` managemet since
	`disabledReasons` payButton data are not sync anymore.

Solution

	Remove 'disabled' attribut only if has `disabledReasons` data on
	payButton (checkbox_cgv feature alter `disabledReasons`).

opw-2355407
opw-2357605

closes odoo/odoo#60359

X-original-commit: 04e589e8
Signed-off-by: default avatarbon-odoo <nboulif@users.noreply.github.com>
parent 8f681585
No related branches found
No related tags found
No related merge requests found
......@@ -22,9 +22,7 @@ publicWidget.registry.PaymentForm = publicWidget.Widget.extend({
* @override
*/
start: function () {
if(!$('#checkbox_cgv').length){
$("#o_payment_form_pay").removeAttr('disabled');
}
this._adaptPayButton();
var self = this;
return this._super.apply(this, arguments).then(function () {
self.options = _.extend(self.$el.data(), self.options);
......@@ -148,6 +146,11 @@ publicWidget.registry.PaymentForm = publicWidget.Widget.extend({
}
return e.message.data.arguments[0];
},
_adaptPayButton: function () {
var $payButton = $("#o_payment_form_pay");
var disabledReasons = $payButton.data('disabled_reasons') || {};
$payButton.prop('disabled', _.contains(disabledReasons, true));
},
//--------------------------------------------------------------------------
// Handlers
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment