Skip to content
Snippets Groups Projects
Commit 8156d6a2 authored by Pedram (PEBR)'s avatar Pedram (PEBR)
Browse files

[FIX] pos_stripe: get stripe payment provider based on company


The problem was that if you have multiple stripe payment providers in
different companies, it may cause issues in getting the stripe payment
provider. That was because of using sudo in
calling `_get_stripe_payment_provider`.

The solution is to filter the result based on the company.

opw-3473577

closes odoo/odoo#133578

Signed-off-by: default avatarJoseph Caburnay (jcb) <jcb@odoo.com>
parent 0d7724fa
No related branches found
No related tags found
No related merge requests found
......@@ -19,7 +19,7 @@ msgstr ""
#. odoo-python
#: code:addons/pos_stripe/models/pos_payment_method.py:0
#, python-format
msgid "Complete the Stripe onboarding."
msgid "Complete the Stripe onboarding for company %s."
msgstr ""
#. module: pos_stripe
......@@ -106,7 +106,7 @@ msgstr ""
#. odoo-python
#: code:addons/pos_stripe/models/pos_payment_method.py:0
#, python-format
msgid "Stripe payment provider is missing"
msgid "Stripe payment provider for company %s is missing"
msgstr ""
#. module: pos_stripe
......
......@@ -32,10 +32,13 @@ class PosPaymentMethod(models.Model):
payment_method.stripe_serial_number, existing_payment_method.display_name))
def _get_stripe_payment_provider(self):
stripe_payment_provider = self.env['payment.provider'].search([('code', '=', 'stripe')], limit=1)
stripe_payment_provider = self.env['payment.provider'].search([
('code', '=', 'stripe'),
('company_id', '=', self.env.company.id)
], limit=1)
if not stripe_payment_provider:
raise UserError(_("Stripe payment provider is missing"))
raise UserError(_("Stripe payment provider for company %s is missing", self.env.company.name))
return stripe_payment_provider
......@@ -44,7 +47,7 @@ class PosPaymentMethod(models.Model):
stripe_secret_key = self._get_stripe_payment_provider().stripe_secret_key
if not stripe_secret_key:
raise ValidationError(_('Complete the Stripe onboarding.'))
raise ValidationError(_('Complete the Stripe onboarding for company %s.', self.env.company.name))
return stripe_secret_key
......
......@@ -26,6 +26,7 @@ let PaymentStripe = PaymentInterface.extend({
let data = await rpc.query({
model: 'pos.payment.method',
method: 'stripe_connection_token',
kwargs: { context: this.pos.env.session.user_context },
}, {
silent: true,
});
......@@ -34,7 +35,8 @@ let PaymentStripe = PaymentInterface.extend({
}
return data.secret;
} catch (error) {
this._showError(error.message.message, 'Fetch Token');
const message = error.message.code === 200 ? error.message.data.message : error.message.message;
this._showError(message, 'Fetch Token');
this.terminal = false;
};
},
......@@ -194,6 +196,7 @@ let PaymentStripe = PaymentInterface.extend({
model: 'pos.payment.method',
method: 'stripe_capture_payment',
args: [paymentIntentId],
kwargs: { context: this.pos.env.session.user_context },
}, {
silent: true,
});
......@@ -202,7 +205,8 @@ let PaymentStripe = PaymentInterface.extend({
}
return data;
} catch (error) {
this._showError(error.message.message, 'Capture Payment');
const message = error.message.code === 200 ? error.message.data.message : error.message.message;
this._showError(message, 'Capture Payment');
return false;
};
},
......@@ -213,6 +217,7 @@ let PaymentStripe = PaymentInterface.extend({
model: 'pos.payment.method',
method: 'stripe_payment_intent',
args: [[payment_method.id], amount],
kwargs: { context: this.pos.env.session.user_context },
}, {
silent: true,
});
......@@ -221,7 +226,8 @@ let PaymentStripe = PaymentInterface.extend({
}
return data.client_secret;
} catch (error) {
this._showError(error.message.message, 'Fetch Secret');
const message = error.message.code === 200 ? error.message.data.message : error.message.message;
this._showError(message, 'Fetch Secret');
return false;
};
},
......
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