Commit Graph

14886 Commits

Author SHA1 Message Date
Pau Perez
97f551a2dd Replace literal with AR's 4 #not 2020-07-23 20:24:31 +02:00
Pau Perez
357037e429 Recalculate adjustments when invalidating payments
Switching from `#invalidate` to `#update_column` skipped both
validations and callbacks and thus, `#ensure_correct_adjustments` was no
longer called for older payments.
2020-07-23 20:24:31 +02:00
Pau Perez
e6943ce554 Fix simple Rubocop issues 2020-07-23 20:24:31 +02:00
Pau Perez
4d9fbb68d6 Add missing attribute to skip source validation 2020-07-23 20:24:31 +02:00
Pau Perez
813459ee38 Clarify method documentation 2020-07-23 20:24:31 +02:00
Pau Perez
c0f72f89f2 Handle #refund! as we do with #credit! 2020-07-23 20:24:31 +02:00
Pau Perez
0f0a704147 Skip source validation when applying credit
The original payment may not be valid because its credit card may be
expired. Stripe gives this as a valid scenario returning a success and
we should do too.

When creating the credit payment we end up validating all sources in
a chain as follows.

```
Payment being persisted -> source payment -> original credit card.
```

The source payment was valid when created (It would not be persisted
otherwise) but its source card may now be expired, and that's legit.

There was also an issue with the `#invalidate_old_payments` callback. It
was causing the original payment to be validated again and thus the
credit payment failed to be persisted due to the original credit card
being expired. Switching this callback to use `#update_column` skips
validations and so we don't validate the source payment. We only care
about the state there, so it should be fine.
2020-07-23 20:24:31 +02:00
Pau Perez
f2b28a198d Replace before_validation with custom validation
No reason to use a callback when custom validation methods can be
defined.
2020-07-23 20:24:31 +02:00
Pau Perez
59da07de66 Handle all errors when dealing with payment event
This basically catches ActiveRecord::RecordInvalid caused by an invalid
credit record, for instance, but also other situations we haven't
forseen.
2020-07-23 20:24:31 +02:00
Pau Perez
6ca6938df4 Merge branch 'master' into bring-in-payment-model
* master: (91 commits)
  Bump ddtrace from 0.37.0 to 0.38.0
  Add spec to cover SQL query issue with OCs where the only products from the coordinator inventory are renderer
  Remove unnecessary order statement, the relation will only be used for counting products
  Move select out of scope visible_for because it is breaking exchange_product queries and it's just not needed there. The only other use of this product's scope visible_for is the enterprise serializer so we add the select to it.
  Make OC advanced settings work by permitting the extra parameter
  Remove conflicting and duplicate route
  Bump bugsnag from 6.13.1 to 6.14.0
  Make charges update method update the first pending payment
  Move require_login_then_redirect_to to the only place where it is called
  Make broken spec fail reliably and set it pending
  Updating translations for config/locales/en_GB.yml
  Update all locales with the latest Transifex translations
  Doc defensive coding needed by pin payments
  Make method a little simple by extracting method
  Simplify spec, the 2 minutes wait is not necessary anylonger
  Make unauthorized in ControllerHelpers::Auth the same as in Spree::Admin::BaseController
  Move unauthorized view to HomeController only, all other calls to unauthorized will go through Auth which will redirect to the home controller IF the user is logged in or to login if user is not logged in
  Adapt specs to the move of unauthorized route from the spree routes to the main app routes
  Delete spree_user_signup which is from spree promotions code that we dont use
  Remove try_spree_current_user
  ...
2020-07-23 20:20:43 +02:00
Joanne Yeung
abc132d3db Remove trailing whitespace 2020-07-23 09:37:10 -06:00
Joanne Yeung
b16f486dcc Address missing semi-colon 2020-07-23 09:25:56 -06:00
Luis Ramos
6cc91d457e Merge pull request #5796 from coopdevs/remove-conlicting-spree-route
Remove conflicting and duplicate route
2020-07-23 14:29:12 +01:00
Luis Ramos
438aef1e7a Merge pull request #5798 from luisramos0/payment_fees_master
Make charges update method update the first pending payment
2020-07-23 14:23:03 +01:00
Joanne Yeung
6419036a26 Fix content header overlap with long product names 2020-07-22 15:53:44 -06:00
Luis Ramos
3dc9548fb3 Merge pull request #5775 from luisramos0/oc_inv_bug
Make OC advanced settings work by permitting the extra parameter and make the OC edit page work with that option activated
2020-07-22 22:23:28 +01:00
romale
daa3f00302 Update all.js.coffee 2020-07-22 20:30:21 +03:00
romale
77c920daab Update all.js 2020-07-22 20:29:15 +03:00
Luis Ramos
aadbc9ed5d Remove unnecessary order statement, the relation will only be used for counting products 2020-07-21 19:44:43 +01:00
Luis Ramos
9b5875a7d1 Move select out of scope visible_for because it is breaking exchange_product queries and it's just not needed there. The only other use of this product's scope visible_for is the enterprise serializer so we add the select to it. 2020-07-21 19:44:43 +01:00
Luis Ramos
7ba8c5ace1 Make OC advanced settings work by permitting the extra parameter 2020-07-21 19:44:41 +01:00
Pau Pérez Fabregat
426c536750 Merge pull request #5677 from luisramos0/remove_spree_root_path
Bring ControllerHelpers from Spree and remove spree root path
2020-07-21 16:15:21 +02:00
Pau Perez
9be199a6cc Remove conflicting and duplicate route
This Spree route conflicts with the one we define:

```
get "/login", to: redirect("/#/login")
```

for whatever reason there are 7 users that managed to hit the Spree one
instead of ours when confirming their signup email. It's not clear to me
though when this `/login?validation=confirmed` is really hit. The
confirmation email link passes a token in the query params and this is
not the case.

The idea is that `GET /login` makes the login modal to show up instead
of Devise's default behaviour (through inheritance) of showing a login
form page. OFN was never prepared to handle this as this bug proofs.
2020-07-21 13:27:06 +02:00
Eduardo
d43e9b5716 add Actions dropdown to all pages of order details menu 2020-07-20 20:45:50 -03:00
Luis Ramos
21227d7482 Make charges update method update the first pending payment
Updating the first overall payment could select a failed payment and ignore the pending payment that is about to be processed
2020-07-20 18:23:06 +01:00
Robin Klaus
d43a3ac65e Added translation key to locale/en.yml for backoffice admin payment and added lazy loading 2020-07-20 13:07:41 +10:00
Luis Ramos
62a3b6b720 Merge pull request #5406 from kristinalim/fix/5300-optimistic_locking_in_stock_items
5300 Avoid race conditions in Spree::StockItem
2020-07-17 22:24:59 +01:00
Luis Ramos
152e432f78 Merge pull request #5749 from mbudm/issue/1253
Ensure the hero image doesn't pixelate on hamburger menu open
2020-07-17 22:15:46 +01:00
Luis Ramos
001d40d691 Move require_login_then_redirect_to to the only place where it is called
This fixes a class loading issue where orders controllers was getting a undefined method require_login_then_redirect_to
2020-07-17 14:35:42 +01:00
Pau Perez
dd5e679f69 Address code review comments
Mostly styling issues.
2020-07-16 15:30:28 +02:00
Steve Roberts
429c88c000 Add watcher to update filter after products are loaded
Also remove the other redundant trigger
2020-07-16 12:06:26 +10:00
Maikel
4e3502cce7 Merge pull request #5766 from mkllnk/5764-fix-pin-payments
5764 Provide credit card brand to Pin Payments
2020-07-16 10:28:18 +10:00
Pau Perez
4e00c45782 Doc defensive coding needed by pin payments
[skip ci]
2020-07-15 16:46:09 +02:00
Luis Ramos
efacca6292 Revert "Enhancement/5454 make links to shops under Groups > Producers open in new tab" 2020-07-15 15:33:03 +01:00
Luis Ramos
31e072179b Make method a little simple by extracting method 2020-07-15 15:23:16 +01:00
Luis Ramos
8fac1bc9ca Move unauthorized view to HomeController only, all other calls to unauthorized will go through Auth which will redirect to the home controller IF the user is logged in or to login if user is not logged in 2020-07-15 14:54:52 +01:00
Luis Ramos
bf3150ddc8 Delete spree_user_signup which is from spree promotions code that we dont use 2020-07-15 14:53:35 +01:00
Luis Ramos
1666ffb191 Remove try_spree_current_user
This can be done because the method is defined in OFN's ApplicationController, so spree_current_user is available in all controllers
2020-07-15 14:53:35 +01:00
Luis Ramos
144811268e Adapt require statements to new undecorated classes 2020-07-15 14:53:35 +01:00
Luis Ramos
4ee30d7cac Remove spree.root route and respective controller. Also move
unauthorized route to main app.

This route is no longer used in OFN
2020-07-15 14:53:08 +01:00
Pau Perez
3a64cc426a Reuse #calculate_refund_amount method 2020-07-15 14:01:58 +02:00
Pau Perez
a8af3a27b1 Fix all but Metrics Rubocop cops in processing.rb 2020-07-15 14:01:58 +02:00
Pau Perez
42658b5255 Refactor #process! nested ifs to guard clauses
Following Rubocop's indications.
2020-07-15 14:01:58 +02:00
Pau Perez
66dbd85eb4 Run rubocop autocorrect on payment/processing.rb 2020-07-15 14:01:58 +02:00
Pau Perez
3435d5ac97 Fix Rubocop non-metrics issues in payment model 2020-07-15 14:01:30 +02:00
Matt-Yorkley
c009fed6be Update StrongParams for Pin Payments 2020-07-15 14:00:19 +02:00
Maikel Linke
25155cab18 Provide credit card brand to Pin Payments
Spree replaced the Ruby code providing the credit card brand with a
jquery plugin providing it on the checkout screen.

I re-added Ruby code because it's easier and more robust than updating
the user interface with new Javascript.
2020-07-15 17:13:46 +10:00
Steve Roberts
79abc191ff Move location change to PageSelection controller 2020-07-15 15:51:33 +10:00
Steve Roberts
dbc7632c4e Add inline comment to explain two height properties 2020-07-15 09:52:04 +10:00
Luis Ramos
646f48f0af Add translation keys for test and shipment emails and make them lazy lookups 2020-07-14 14:35:36 +01:00