Gaetan Craig-Riou
2f1fe6d096
Fix rubocop warning
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
17e32a89f8
Add VoucherAdjustmentsService to handle calculation
...
Refactor Voucher to move voucher adjustments calculation
to VoucherAdjustmentsService
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
56e981d300
Refactor Voucher to get rid of CalculatedAdjustments
...
Voucher adjustment have complicated calculation that prevent us from
using Spree::Calculator, and we need to override CalculatedAdjustments
method, so no point using it.
We still keep the same methods to stay as consitent as possible in
regards to adjustments
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
3f37554ff9
Add VoucherAdjustmentsController and specs
...
Refactor split checkout to use the new controller. But unfortunately
we can't have nested form, so adding a voucher is still handled by
SplitCheckoutController.
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
43ab881181
Rename order association to voucher_adjustments
...
The name vouchers is a bit confusing as the order is linked to a
voucher adjutment and not the actual voucher
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
fe9b94a80e
Fix cart disappearing bug after adding a voucher
...
The split checkout page uses `mrujs` and `CableCar` to set the form as
a remote one and perform `CableCar` operation if any : https://mrujs.com/how-tos/integrate-cablecar
The previous solution broke the cart handled by angularJS, it looks like
`morpdom` (https://mrujs.com/references/remote-forms-and-links Navigation Adapter section )
was doing something that angularJS didn't like when redirecting to
the current page.
With the power of `CableCar`, we now replace the #voucher-section on the
split checkout page instead of doing a redirect.
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
94294fa161
Voucher adjustment, add ordering by created_at
...
It gives us a consistent result when calling #vouchers
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
a1ad25f217
Fix failing specs
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
bb9d835bd8
Fix rubocop warning
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
87cc525d27
Refactor #vouchers
...
Use "has_many" instead of a method
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
4b5d6d7eac
Fix voucher adjustments association
...
Add missing, "inverse_of" and "dependent" options. Use :nullify as
for "dependent" because we would want to keep the adjustments on order
even if the voucher is deleted.
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
58469adfeb
Adjustments spec, add association test
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
5064bf5383
Allow voucher adjustment to be created with an amount of 0
...
Although unlikely, we should still be able to create a voucher amount
with. This can happen if the order.total is for instance.
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
9789911523
Rework how voucher are applied to an order and handle tax calculation
...
At the time when we can apply a voucher to an order (payment step) we
don't have any data on possible taxes and payment fees. These are
calculated when we move to the summary step. So voucher are applied in
two step:
- create an "open" voucher adjustment on the order when a customer enters
a voucher code.
- when we move to the summary step, recalulate the amount and
possible tax for the voucher adjustment, once taxes and payment fees
have been included in the order. And then close the original and update
order to reflect the changes
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
d157d91054
When voucher cover more than order total, use only amount needed
...
The checkout payment step will also show a warning.
The amount used is stored in the adjustment created, so we will be able
to track how much has been used down the line.
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
3f609d3842
Add error message if adding a voucher fails
...
It's not really useful to the user but better than failing silently
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
596c775af6
Add controller spec to cover voucher in split checkout
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
74e0b0f6b5
Add voucher adjustment loading to CheckoutCallbacks
...
This is needed so the voucher is loaded properly when the "checkout"
partials are render via cable_car.
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
74a8730f04
Highlight voucher on order summary step
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
856386fcb0
SplitCheckoutController refactor add_voucher
...
Now all redirection/render_error happen in #update, it makes it
easier to understand.
2023-05-15 13:42:37 +10:00
Gaetan Craig-Riou
e487ed0532
Add link to remove voucher when a voucher has been applied
...
Improve styling to match the design
2023-05-15 13:42:37 +10:00
Gaetan Craig-Riou
b6213b25e9
add acts_as_paranoid to voucher
...
This is so the relation
`belongs_to :originator, -> { with_deleted }, polymorphic: true`
setup in Spree::Adjustement works as expected.
2023-05-15 13:42:37 +10:00
Gaetan Craig-Riou
a9d9b33f7d
First take at adding a voucher to an order
...
Use voucher.create_adjustment to add an adjustment to the order
Currently doesn't take into account tax part
2023-05-15 13:42:37 +10:00
Gaetan Craig-Riou
3ec58d8791
Add #vouchers, return an array of voucher adjustments
2023-05-15 13:42:37 +10:00
Gaetan Craig-Riou
9b680e1a92
Add CalculatedAdjustments to Voucher
...
Vouchers are only flat rate of 10 for now, so we add a FlatRate
calculator in a before_validation callback
2023-05-15 13:42:37 +10:00
Gaetan Craig-Riou
f7ee01b9f8
Add voucher input on checkout payment's step
...
Voucher input is displayed only if the distributor has any voucher
2023-05-15 13:42:37 +10:00
Maikel
4f7059d0c7
Merge pull request #10838 from filipefurtad0/fix_negative_adjustment_error
...
Adds minus sign to validation criteria
v4.3.8
2023-05-15 11:07:45 +10:00
Gaetan Craig-Riou
d715b6b3bb
Spec fix LocalisedNumber validation to allow negative number
...
As part of this PR https://github.com/openfoodfoundation/openfoodnetwork/pull/10329
LocalisedNumber validation was tightened, but that means negative number
were not valid anymore.
This commit has been cherry-picked after this fix has already been
applied. Now we just change the order of characters in the regex because
humans are used to reading the minus at the beginning of the number. But
this change doesn't change the logic at all.
2023-05-15 10:55:59 +10:00
Maikel
5045e26792
Merge pull request #10834 from mkllnk/variant-spec
...
Improve readability and performance of variant spec
2023-05-15 09:48:06 +10:00
filipefurtad0
0442f2da7e
Fixes spec warning
...
An example was being ignored due to legacy syntax - WARNING: ignoring the provided expectation message argument since it is not a string or a proc.
2023-05-14 23:02:44 +01:00
filipefurtad0
e7ab839fb3
Adds minus sign as validation criteria
...
Removes pending from passing examples
2023-05-14 23:02:44 +01:00
filipefurtad0
596b318778
Adds spec on negative adjustment
...
with different localization settings
Using shared examples and setting failing
ones as pending
2023-05-14 23:02:00 +01:00
Filipe
3c7337b53a
Merge pull request #10836 from jibees/10835-on-small-width-screen-the-cart-element-is-missplaced
...
Fix bad indentation (and hierarchy) of DOM elements causing bad rendering on small width screens
v4.3.7
2023-05-12 11:24:49 +01:00
Jean-Baptiste Bellet
60edb4363e
Fix bad indentation (and hierarchy)
...
`%section` must be siblings each others
introduced by https://github.com/openfoodfoundation/openfoodnetwork/pull/10772
2023-05-12 09:30:37 +02:00
Maikel Linke
87c4c5373b
Spec more variant naming with realistic data
2023-05-12 14:10:54 +10:00
Maikel Linke
f70607259a
Spec Variant#product_and_full_name with real data
...
Mocking skips a lot of code execution which we want to test as well.
2023-05-12 13:34:34 +10:00
Maikel Linke
ce180caad9
Test with in-memory data when possible
...
This should speed up specs but I observed only one second less run time.
2023-05-12 13:21:58 +10:00
Maikel Linke
01be934caf
Reduce spec run time by not creating unused subject
...
The `variant` instance isn't used in all specs and doesn't need to be
created every time. This reduced run time from 1min5sec to 43sec on my
machine.
2023-05-12 13:21:58 +10:00
Maikel Linke
54c6559b97
Move Spree::Variant spec out of Spree module
...
I also discovered that some specs were just in the Spee module and not
within the `describe Variant` block. I moved them inside the block.
2023-05-12 13:21:19 +10:00
Maikel
93c0a06403
Merge pull request #10829 from filipefurtad0/flaky_order_spec_error
...
Splits assertions to allow JS table populate
2023-05-12 11:49:06 +10:00
Filipe
1bdb668cd3
Merge pull request #10769 from Matt-Yorkley/visible-line-items-query
...
Improve `Permissions::Order#visible_line_items` querying
2023-05-11 15:36:32 +01:00
filipefurtad0
d035d4bb87
Update all locales with the latest Transifex translations
2023-05-11 15:25:39 +01:00
filipefurtad0
f5eb72c804
Adds sleep(1)
2023-05-11 11:29:24 +01:00
Konrad
2836751698
Merge pull request #10805 from jibees/10717-bo-orders-changing-customer-does-not-update-customer_id
...
Admin, Edit customer details for an order: when changing to another customer, update `customer_id` as well
2023-05-10 19:08:57 +02:00
Filipe
bf7a559a32
Merge pull request #10772 from Matt-Yorkley/view-caching
...
Locale-aware Fragment Caching
2023-05-10 11:18:08 +01:00
Matt-Yorkley
d90653c682
Merge pull request #10793 from jibees/fix-webpack-configuration-use-the-default-one
...
Use the default webpack configuration for dev env
2023-05-10 10:09:28 +01:00
jibees
ca5300284c
Merge pull request #10820 from Matt-Yorkley/js-dependencies
...
Remove indirect JS dependencies
2023-05-10 09:57:05 +02:00
Matt-Yorkley
406cb572ea
Remove indirect JS dependencies
2023-05-10 09:27:00 +02:00
jibees
ca90b5cee2
Merge pull request #10810 from openfoodfoundation/dependabot/bundler/aws-sdk-s3-1.122.0
...
Bump aws-sdk-s3 from 1.121.0 to 1.122.0
2023-05-10 09:23:44 +02:00
jibees
760860a06d
Merge pull request #10811 from openfoodfoundation/dependabot/bundler/knapsack_pro-3.11.0
...
Bump knapsack_pro from 3.10.0 to 3.11.0
2023-05-10 09:21:46 +02:00