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
6b364dc420
Update specs on shipping fee changes and mark as pending
...
The shipping fee and it's tax actually don't get updated correctly here (in master).
2021-06-04 17:10:50 +01:00
Matt-Yorkley
d5b20d5446
Add specs for Order#ensure_updated_shipments
2021-06-04 17:10:50 +01:00
Matt-Yorkley
05c001807e
Add variant override specs for Stock::AvailabilityValidator
2021-06-04 17:10:50 +01:00
Matt-Yorkley
011da05712
Add more test coverage to OrderContents
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
47e2976fd1
Update CartService specs
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
42ff2307fa
Update specs that use removed #add_variant and #remove_variant methods in test setup
2021-06-04 17:10:50 +01:00
Matt-Yorkley
b25e7fcb89
Delete tests for removed Order #add_variant and #remove_variant methods
2021-06-04 17:10:50 +01:00
Matt-Yorkley
79aebed40e
Bring OrderContents#update_cart tests from upstream and tidy up
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
Matt-Yorkley
5ff8436c1a
Adapt OrderContents#remove to allow deleting line item without passing a quantity
2021-06-04 17:10:50 +01:00
Matt-Yorkley
a5ccaf9595
Remove unnecessary code in BulkLineItemsController
...
This method isn't called from anywhere else
2021-06-04 17:10:50 +01:00
Matt-Yorkley
423c140670
Remove pointless currency code in Order and CartService
...
The currency will always be the currency of the variant, there's no need to pass this value around.
2021-06-04 17:10:50 +01:00
Matt-Yorkley
e8ef183623
Delete dead code Order#set_variant_attributes
2021-06-04 17:10:50 +01:00
Matt-Yorkley
000e2c07f8
Use OrderContents in OrdersController
2021-06-04 17:10:50 +01:00
Matt-Yorkley
c1c69b00b4
Update order explicitly in OrderSyncer
2021-06-04 17:10:50 +01:00
Matt-Yorkley
d5edf03042
Update reports_spec test setup
2021-06-04 17:10:50 +01:00
Matt-Yorkley
305ac037fe
Use OrderContents in customers controller spec
2021-06-04 17:10:50 +01:00
Matt-Yorkley
23910dbab4
Use OrderContents in BulkLineItemsController
...
We should move towards *all* operations on an order's line items being done exclusively through this service.
2021-06-04 17:10:50 +01:00
Matt-Yorkley
632f4228f0
Bring in line item fetching refactor
2021-06-04 17:10:50 +01:00
Matt-Yorkley
1268cb565c
Extract method
2021-06-04 17:10:50 +01:00
Matt-Yorkley
c55e47f6af
Remove superfluous updates in OrderFeesHandler
2021-06-04 17:10:50 +01:00
Matt-Yorkley
03fc63ad14
Remove #order_update! from line item after_save callback
2021-06-04 17:10:50 +01:00
Matt-Yorkley
a124141537
Move Shipment#line_items to private
2021-06-04 17:10:50 +01:00
Matt-Yorkley
0fabb5bc2f
Don't pluck variant_ids multiple times (once for each line item)
2021-06-04 17:10:50 +01:00
Matt-Yorkley
1fff81c214
Remove call to OrderInventory#verify
...
This already gets called in after_save and after_destroy in Spree::LineItem.
2021-06-04 17:10:50 +01:00
Matt-Yorkley
67264c047f
Delete dead code #editable_by?
...
This is junk Spree code from 2010. 11 years old! The method that previous called this was removed long ago...
2021-06-04 17:10:50 +01:00
Matt-Yorkley
34eaf6f0f2
DRY shipment updating
2021-06-04 17:10:50 +01:00
Matt-Yorkley
8405a7672d
Bring in shipment updating
2021-06-04 17:10:50 +01:00
Matt-Yorkley
66a3246a23
Move order updating
2021-06-04 17:10:50 +01:00
Matt-Yorkley
34482f6710
Bring OrderContents#update_cart from Spree 2.2
2021-06-04 17:10:50 +01:00
Matt-Yorkley
f550d1e9f3
Bring Order#ensure_updated_shipments from Spree 2.2
2021-06-04 17:10:50 +01:00