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
6596225a99
Fix typo in VCR cassette name
2023-05-12 14:48:00 +10: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
Maikel Linke
636b365304
Tell Rubocop and devs about bulk insert
2023-05-12 10:30:47 +10:00
Jean-Baptiste Bellet
51d6fb81dd
Fwd to request the restock_items input value when adjusting items qty
2023-05-11 22:58:44 +02:00
Jean-Baptiste Bellet
f679d8733e
Pass the restock_items params to each methods and request call
...
+ update spec to test whether the restock item checkbox is checked or not.
2023-05-11 22:58:44 +02:00
Matt-Yorkley
b139087c5f
Clone ExchangeVariant objects in bulk
...
An ExchangeVariant is a simple representation of a join table between Exchange and Variant. Previously this code was triggering an additional INSERT query for every variant added to the newly cloned exchange. Some exchanges have ~3000 variants! The code now creates them in bulk in a single INSERT statement. When cloning large order cycles this can improve performance by ~1000% or so.
2023-05-11 20:51:20 +01: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
Mohamed ABDELLANI
6771d2e7be
test enterprise fees creation with tax category inheritance flag
2023-05-11 12:46:17 +01:00
Mohamed ABDELLANI
a22fe9f948
fix existing invalid enterprise fees
2023-05-11 12:46:17 +01:00
Maikel Linke
25b7f1749c
Simplify error when tax rate can't be inherited
...
I changed the text to focus on the resolution: the user needs to choose
a tax category or a different calculator.
I associated the error to the model to prevent the attribute name from
being included in the error message. Alternatively, we could have
changed the name of the attribute to match the UI. But this error
affects the combination of two attributes, none of them is invalid on
its own.
I'm using Rails' default lazy lookup for error messages which results in
shorter code and a standard structure.
I also added a simple spec.
2023-05-11 12:46:17 +01:00
Mohamed ABDELLANI
89eb3a1967
fix existing tests
2023-05-11 12:46:17 +01:00
Mohamed ABDELLANI
7eca32e84f
prevent saving the enterprise fee when a per order calculator is selected along with 'Inherit from product'
2023-05-11 12:46:17 +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
filipefurtad0
82f307ae61
Adds test case for logging out
2023-05-10 10:41:43 +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