Commit Graph

12401 Commits

Author SHA1 Message Date
Matt-Yorkley
7940a42e8c Add Spree::Order#all_adjustments scope, which can be used to get all adjustments on an order, and order's line_items, etc, not just adjustments directly on the order itself. 2021-01-23 03:59:32 +00:00
Matt-Yorkley
4d4c055577 Loosen Spree::Adjustment#tax scope to include any tax adjustments 2021-01-23 03:59:32 +00:00
Matt-Yorkley
ddfcda0c0b Adapt imported Paypal code
The #additional scope from Spree 2.2 is now present, so we can tidy up this conditional.
2021-01-23 03:59:32 +00:00
Matt-Yorkley
173e502c98 Rename #included scope to #inclusive
This method name (#included) is reserved and used internally by ActiveRecord. After updating Ruby, this has changed from a silent warning to a fatal error.
2021-01-23 03:59:32 +00:00
Matt-Yorkley
a328a9bc1b Use included boolean in tax adjustments 2021-01-23 03:59:32 +00:00
Matt-Yorkley
8be18cd05c Add #included and #additional scopes to Spree::Adjustment
We can now do things like:
```
included_tax = order.adjustments.tax.included.sum(:amount)
additional_tax = order.adjustments.tax.additional.sum(:amount)
```
2021-01-23 03:59:32 +00:00
Matt-Yorkley
0247386f82 Delete dead code Spree::Order#price_adjustments
This method returns the same thing as the Spree::Order#line_items_adjustments scope, but in a slightly less useful format (an array instead of a relation). The method's name is also totally inaccurate, as currently the only adjustments that appear on line items are tax adjustments for inclusive tax rates, which by definition have no effect on the price whatsoever...
2021-01-23 00:05:56 +00:00
Cillian O'Ruanaidh
9c6e97f90d Merge branch 'master' into include-ready-for-in-producer-notification 2021-01-22 11:45:01 +00:00
Cillian O'Ruanaidh
70a557cea3 Display the pickup time for each distributor, not the coordinator, in the Notify Producers email 2021-01-22 11:39:46 +00:00
Maikel Linke
46d23f1f8a Fit bulk buy modal on small mobile screens
On some Iphones the modal wouldn't fit and there were line breaks
between the input fields. The inputs are now stacked vertically on small
screens so that there is still plenty of space for large numbers in the
quantity fields.
2021-01-22 16:44:52 +11:00
Maikel Linke
4ab48c4b85 Initialise valid quantities when choosing OCs
Line items were initialised with undefined quantities which makes it
impossible to distinguish between the initial unset quantity and a user
entering an invalid quantity. When a user changed order cycles, all
quantities are reset and the UI displayed the quantity modifier buttons
instead of the Add button.

Initialising with the valid quantity 0 helps us to display the Add
button in that situation.
2021-01-22 16:42:21 +11:00
Maikel Linke
bd731267ec Allow user to get maximum available quantity
When the user entered a number beyond the stock level, the browser was
correcting that to the max number which is very helpful. But Angular was
setting the model to undefined which removes the item from the cart.

Deactivating Angular's max behaviour let's us set the value ourselves
which is then used in the cart.
2021-01-22 16:42:21 +11:00
Maikel Linke
35b4e8c4d1 Allow editing of invalid quantities
If the user entered an invalid quantity, Angular set the model to
undefined and we removed the input field to show the add button. That
makes it impossible for a user to see what the maximum quantity to enter
would be. For example:

- The variant has a stock level of 5.
- The user enters 7.
- Angular sets it to undefined.
- The input field disappears.
- The user is startled and doesn't know how to proceed.

But now we hide the input only if it's deliberately set to zero.
2021-01-22 16:42:21 +11:00
Maikel Linke
0166400b03 Guard against invalid quantity input
The user can now type anything into the quantity field and some of it
may not be valid. These safe guards ensure that the buttons still work
even if the quantity is undefined or out of range.

Angular guards against the value being out of range but that has other
side-effects. We want to be able to de-activate some of Angular's
behaviour.
2021-01-22 16:42:20 +11:00
Maikel Linke
cf2a105b2a Prevent line breaks within plus/minus buttons 2021-01-22 16:42:20 +11:00
Maikel Linke
688be46b10 Avoid horizontal scroll bar on small screens 2021-01-22 16:42:20 +11:00
Maikel Linke
3558d01fce Give the new input fields more space
The additional input needs more space and we are adjusting columns here.
2021-01-22 16:42:20 +11:00
Maikel Linke
66423a1ec3 Add quantity input to shop front product list
Adding bigger quantities can now be done via an input field instead of
clicking a thousand times.

The add-button has been widened to match the new space requirements.
2021-01-22 16:42:20 +11:00
Maikel Linke
e5506df5ea Replace bulk quantity label with input field
Enable the user to enter a number directly.
2021-01-22 16:42:20 +11:00
Maikel Linke
af918e63ee Change bulk quantities on any quantity change
This prepares for changing the quantity with an input field. It also
applies if the quantity is changed after an ajax request.
2021-01-22 16:42:20 +11:00
Andy Brett
84689c43be Merge pull request #6534 from andrewpbrett/sca-emails
Send email when SCA authorization is required for admin payment
2021-01-21 13:53:35 -08:00
Andy Brett
0f92b3c4de Merge pull request #6685 from Matt-Yorkley/angular-csrf
[Rails 5] Update Angular CSRF handling
2021-01-21 11:01:06 -08:00
Andy Brett
0e7f4b2f14 Merge pull request #6537 from mkllnk/simplify-mail-config
Simplify mail config
2021-01-21 10:59:43 -08:00
Andy Brett
d2b2e46124 Merge pull request #6701 from Matt-Yorkley/admin-order-performance
Fix performance issue in loading payment methods
2021-01-21 10:58:35 -08:00
Andy Brett
3ef4a74b84 Merge pull request #6655 from Matt-Yorkley/summing-amounts
Improve performance on summing adjustments and payment
2021-01-21 10:58:10 -08:00
Matt-Yorkley
d8b795ebee Merge pull request #6679 from Matt-Yorkley/soft-delete-enterprise-fees
Soft-delete Enterprise Fees
2021-01-21 19:57:29 +01:00
Andy Brett
70f30f5224 Merge pull request #6658 from andrewpbrett/item-counter-fix
Further fix #5989 (Item counter accepts values higher than the available stock)
2021-01-21 10:56:18 -08:00
Andy Brett
bba9e55006 don't try to process a payment if it's pending auth 2021-01-21 09:18:29 -08:00
Andy Brett
ce4621858d base authorization on the payment's order 2021-01-21 09:18:29 -08:00
Andy Brett
8bcaeff6c8 resolve merge conflict; add ssl helper to base controller 2021-01-21 09:18:29 -08:00
Andy Brett
903b2e7ff4 whitelist allowed events to be sent to a Payment 2021-01-21 09:18:29 -08:00
Andy Brett
affc82b2b5 update payment jobs delivery methods 2021-01-21 09:18:29 -08:00
Andy Brett
d9b27bc556 move controller and mailer outside of spree namespace; use haml in template 2021-01-21 09:18:29 -08:00
Andy Brett
b669ccdc74 refactor admin payments controller 2021-01-21 09:17:07 -08:00
Andy Brett
84b5fcf2ce add resend-authorization-email button to admin screen 2021-01-21 09:17:07 -08:00
Andy Brett
5c0408c68c pass paymentIntent ID to capture 2021-01-21 08:48:38 -08:00
Andy Brett
8507dacc10 pass return_url option to gateway authorize 2021-01-21 08:48:33 -08:00
Andy Brett
802e49bed3 add PaymentMailer and send email if payment auth is required 2021-01-21 08:24:01 -08:00
Cillian O'Ruanaidh
40f9b063fe Remove ability to create new product from products page, use /admin/products/new instead.
It's simpler if there is just one place to add a new product. Closes #6650

This removes the 'creating directly from the new product path' test scenario because we have another 'assigning important attributes' scenario above which provides enough coverage.
2021-01-21 08:24:01 -08:00
Matt-Yorkley
49c616c33c Extract tax rate transition logic to service 2021-01-21 14:50:14 +00:00
Andy Brett
77419a1e4b Merge pull request #6675 from cillian/single-new-product-view
Remove ability to create new product from products page, use /admin/products/new instead.
2021-01-20 19:23:33 -08:00
Andy Brett
e31d566f7f Merge pull request #6283 from luisramos0/sets
Move sets out of app/models to app/services/sets
2021-01-20 19:22:15 -08:00
Andy Brett
ca37976661 Merge pull request #6640 from jibees/2772-loading-spinner-reusable-component
Create a reusable "loading spinner" component
2021-01-20 19:21:31 -08:00
Andy Brett
1d4fa2983c Merge pull request #6466 from Matt-Yorkley/package-optimisation
Optimise Shipment#to_package
2021-01-20 19:20:56 -08:00
Pau Perez
cc9e3fe69b Replace double negation with proper list of states
We rely now on the exhaustive list of states an order can be in after
checkout. What made this all a bit more messy is that I made up the
"checkout" order state, likely mixing it from the payment model states.

This simplifies things quite a bit and gives meaningful names to things.
2021-01-20 18:34:31 +01:00
Pau Perez
d9c065a311 Remove outdated comment
This comment was related to the feature we removed in
https://github.com/openfoodfoundation/openfoodnetwork/pull/3609.
2021-01-20 18:23:22 +01:00
Pau Perez
996761da67 Fix long line 2021-01-20 18:23:22 +01:00
Pau Perez
783863056d Extract query object out of UsersController
It improves the overall readability of the code and as a result, things
became easier to manage already.
2021-01-20 18:23:22 +01:00
Pau Perez
d18e79ab19 Move query object to app/queries/ and doc it 2021-01-20 18:23:22 +01:00
Pau Perez
e8ef4acb2b Hide new data fetching implementation under toggle 2021-01-20 18:23:22 +01:00