Jean-Baptiste Bellet
6cf0c73453
Use our unlocalizeCurrencyFilter to parse unit value field
...
- More tolerant (can handle `,` or `.` as decimal separator, remove thousands separator) to return a `number`
2021-06-08 10:55:43 +02:00
Jean-Baptiste Bellet
d3c2158121
Handle comma as decimal separator in the unit value field
...
- Add comma as a decimal separator in the regexp
- Do not use parseFloat but our `unlocalizeCurrencyFilter` which is more tolerant
2021-06-08 09:51:30 +02:00
Jean-Baptiste Bellet
0cb2739139
Handle case when price is not a number
...
And return a `null` if so.
2021-06-08 09:46:24 +02:00
Matt-Yorkley
15b386bce3
Set :execute_threed option to explicitly handle 3DS responses
2021-06-07 22:48:54 +01:00
Matt-Yorkley
3544b7de7a
Remove Stripe Decorator
...
The method being overridden here is the same in the upstream
2021-06-07 20:44:58 +01:00
Jean-Baptiste Bellet
e3f56556cf
Remove feature toggle around unit_price and enable it
2021-06-07 20:53:45 +02:00
Matt-Yorkley
8e0a84a502
Merge pull request #7729 from Matt-Yorkley/delayed-cleanup
...
Delayed::Cleanup
2021-06-07 19:11:37 +02:00
Jean-Baptiste Bellet
3ebba9502a
Handle more cases with decimal/thousands separator
...
- ',' or '.' can be used as decimal separator (defined in the application configuration)
- Remove thousands separator if it's detected as so (use regexp to match)
2021-06-07 16:53:20 +02:00
Nihal Mohammed
a5190ec5d7
Remove refund button from paypal completed order tab
2021-06-07 16:07:31 +05:30
Matt-Yorkley
9e1d8ab369
Introduce legacy tax handing in Order::Updater whenever order totals change
...
This will remove legacy tax adjustments, recalculate any relevant taxes for items in the order and re-apply them in non-legacy tax adjustments
2021-06-06 20:20:41 +01:00
Matt-Yorkley
bfea47802e
Move fee tax call outside of lock and simplify order updating
2021-06-06 20:18:05 +01:00
Matt-Yorkley
28ebb303af
Simplify order interface
2021-06-06 20:17:03 +01:00
Matt-Yorkley
38811b5a28
Add Bugsnag message if legacy taxes are used
2021-06-06 20:17:03 +01:00
Matt-Yorkley
c84f9e56fb
Tax enterprise fee adjustments when calling #recreate_all_fees!
2021-06-06 20:17:03 +01:00
Matt-Yorkley
0f5c39317a
Re-apply taxes in Admin::OrdersController#update
...
Ensures taxes are updated properly when hitting the "Update and Recalculate Fees" button on the order edit page.
2021-06-06 20:16:03 +01:00
Matt-Yorkley
a31487a86d
Clear any legacy taxes when applying tax to an order
...
#create_tax_charge! adds tax (adjustments) to all taxable items on an order. If an order order has legacy taxes (lump-sum tax adjustments on the order object), we remove them here before re-applying taxes (using the new setup).
2021-06-06 20:16:03 +01:00
Matt-Yorkley
84a40e6ae0
Improve Order#enterpise_fee_tax
2021-06-06 20:16:03 +01:00
Matt-Yorkley
510f74f654
Update OrderTaxAdjustmentsFetcher
...
Taxes on Enterprise Fees are now recorded in proper tax adjustments, so they don't need special treatment.
2021-06-06 20:16:03 +01:00
Matt-Yorkley
52452f7939
Update default tax calculator
...
Line items, shipments and fees can now all be calculated in the same way when applying tax.
2021-06-06 20:16:03 +01:00
Matt-Yorkley
2de442f44d
Move taxing of enterprise fees to TaxRate
2021-06-06 20:16:03 +01:00
Matt-Yorkley
a22cc96ea5
Simplify DefaultTax calculator
...
This logic is handled in TaxRate and doesn't need to be duplicated here.
2021-06-06 20:16:03 +01:00
Matt-Yorkley
d450aff607
Update Order#create_tax_charge!
...
TaxRate#adjust now handles individual items instead of the whole order 🎉 We can use this elsewhere too, for example to re-apply taxes on a single line item, we can do: Spree::TaxRate.adjust(order, [line_item])
2021-06-06 20:16:03 +01:00
Matt-Yorkley
f92c082df8
Refactor tax adjustment create_label method
2021-06-06 20:16:03 +01:00
Matt-Yorkley
d69f714032
Bring in changes to TaxRate#adjust
2021-06-06 20:16:03 +01:00
Matt-Yorkley
50d0952dd5
Bring in TaxRate#potentially_applicable method and add eager-loading
2021-06-06 20:16:03 +01:00
Luis Ramos
5629dfbe09
Fix warning: deprecated Object#=~ is called
2021-06-04 22:42:27 +01:00
Luis Ramos
c22799bda1
Replace gsub! with gsub so that strings are not modified
2021-06-04 22:42:22 +01:00
Guido Oliveira
65b760b119
Add validations to variant_override model
2021-06-04 14:11:22 -03:00
Matt-Yorkley
3222d4980d
Improve comment on #ensure_updated_shipments
2021-06-04 17:10:50 +01:00
Matt-Yorkley
e246eed99d
Move #restart_chceckout_flow out of Order class
2021-06-04 17:10:50 +01:00
Matt-Yorkley
b69d61dd77
Remove #order_update! call from method used in order after_save callbacks
...
This method gets called twice every time we save a completed order, calling order_update! twice...
2021-06-04 17:10:50 +01:00
Matt-Yorkley
2d76c2730a
Update shipment updating
2021-06-04 17:10:50 +01:00
Matt-Yorkley
2e96982e60
Refactor conditional
...
CartService#populate already returns the value of the #valid? method by default.
2021-06-04 17:10:50 +01:00
Matt-Yorkley
6abe0b375c
Refactor stock levels check in CartController
2021-06-04 17:10:50 +01:00
Matt-Yorkley
dc6be6f06b
Don't resubmit the whole cart contents for no reason.
...
There's a couple of places where this was causing a cart update submission where it wasn't needed, eg the items had not actually changed. The conditional here was designed to stop that from happening, but it was actually passing every time (the conditional logic was not actually catching the case it was supposed to).
This is really expensive!
2021-06-04 17:10:50 +01:00
Matt-Yorkley
38ce9eb0c4
Update line item removal in CartService when the line item doesn't exist
2021-06-04 17:10:50 +01:00
Matt-Yorkley
3b52b173e8
Delete more dead code in CartService
2021-06-04 17:10:50 +01:00
Matt-Yorkley
b8ccee5f30
Simplify use of #to_i in variant data hash
2021-06-04 17:10:50 +01:00
Matt-Yorkley
0cfe7fdc45
Move required logic into OrderContents and improve spec
2021-06-04 17:10:50 +01:00
Matt-Yorkley
f5c08baabb
Use OrderContents in LineItemsController and move enterprise fee updating logic
2021-06-04 17:10:50 +01:00
Matt-Yorkley
a883b2cf63
Remove dead code CartService#cart_remove
2021-06-04 17:10:50 +01:00
Matt-Yorkley
398d4b2612
Tidy up public interface of CartService
...
We don't need this extra hash to be passed around
2021-06-04 17:10:50 +01:00
Matt-Yorkley
4a7c0e8297
Remove variant early if we're deleting them and they're already loaded
2021-06-04 17:10:50 +01:00
Matt-Yorkley
67df6728f6
Fix Order line items association definition
...
Populating the cart was throwing an "Association Mismatch" error D:
2021-06-04 17:10:50 +01:00
Matt-Yorkley
0178cd7530
Adapt OrderContents to allow use with frontend cart service and updating :max_quantity
...
The cart service and it's surrounding logic is a bit messy, as it jumps through hoops to add extra logic for the :max_quantity attribute used with the "group buy" feature.
This is the last bit of code where an order's line items could be changed where we were not using OrderContents.
2021-06-04 17:10:50 +01:00
Matt-Yorkley
cb92231835
Clarify behavior via variable names
...
This is a small semantic thing to clarify that we're not adding to / incrementing the quantity here, we're setting it to the given value. In other places where we change line items on an order we are actually adding the given value to the existing quantity.
2021-06-04 17:10:50 +01:00
Matt-Yorkley
6e8fd3c3f8
Simplify CartService interface
...
There's only one place this method is called, and the "overwrite" argument is always explicitly true. It doesn't need to be there if it's mandatory.
2021-06-04 17:10:50 +01:00
Matt-Yorkley
6451ef173c
Use OrderContents when removing line items with soft-deleted variants in CartService
2021-06-04 17:10:50 +01:00
Matt-Yorkley
7af5e8931f
Adapt OrderContents for use with BulkLineItemsController#update
2021-06-04 17:10:50 +01:00
Matt-Yorkley
9045cc7d65
Use OrderContents in CartService for removing line items from cart
2021-06-04 17:10:50 +01:00