luisramos0
e584fd2155
Make in_stock? work for both variants and overrides by moving it from VariantStock to variant_decorator.
...
Added tests for it in scope_hub_to_variant and improved VO shopping specs
2019-02-01 16:18:09 +00:00
luisramos0
729feb16f1
Merge branch 'master' into 2-0-stable-jan-29th
2019-01-29 12:38:34 +00:00
luisramos0
8a86c0473d
Change app config to keep using the same v1 shipping method calculators and not the ones spree v2 introduces, these are copy pasted versions that work with packages
...
See this commit for more details: 18e5b98f5c (diff-b0846898827183f530c113ad7b83b8ea)
Also:
- remove shipping method restriction on calculators to inherit from Spree::Shipping::ShippingCalculator so that OFN customized calculators keep working
- add shipping method serializer spec to test serialization of all shipping methods configured
2019-01-27 21:03:32 +00:00
Maikel
937aaf67c3
Merge pull request #3250 from coopdevs/open-adjustments-for-update
...
[Spree Upgrade] Open adjustments to enable update
2019-01-24 10:25:16 +11:00
Pau Pérez Fabregat
a95dd98ed6
Merge pull request #2869 from Matt-Yorkley/bi/bulk_invoices
...
[Bulk Invoice Printing] Bulk invoices
2019-01-18 17:49:34 +01:00
Pau Perez
a99a4725c9
Add #shipment to conform to OFN's decision
...
This ensures we can still use Order#shipment although Spree deprecates
it, while fixing a bug at the same time. The problem that was making the
test fail was on `Order#shipment` that Spree defines.
If the shipments association changes, `#shipment` returns stale data.
That is because the order object we might be using is still alive, and
so its @shipment ivar still holds an old shipment object (it's not nil)
and thus `@shipment ||= shipments.last` doesn't evaluate the right-hand
side of the expression.
Note that we need to `prepend` the evaluation of the concern (which it's
been rename) for our methods to take precedence over Spree ones. With
`include`, Spree's `#shipment` would still be picked up making the test
fail.
2019-01-18 16:02:51 +01:00
Pau Perez
1e03835391
Update order while adjustments are open
...
Spree supports updating line items as the model contains these two
callbacks:
f55722b38d/core/app/models/spree/line_item.rb (L27-L28)
However, as
f55722b38d/core/app/models/spree/adjustment.rb (L1-L7)
clearly states, due to Adjustment's state machine, once the order is
finalized it can't be updated. Then, if we want to have an up-to-date
adjustment_total attribute for a complete order we must update it while
the adjustments are open. Otherwise, the following `immutable?` check
does not pass.
f55722b38d/core/app/models/spree/adjustment.rb (L84-L92)
2019-01-16 15:28:54 +01:00
luisramos0
9ab99f13c4
Merge branch 'master' into 2-0-stable-jan-11th
2019-01-11 11:58:24 +00:00
Maikel
4920782742
Merge pull request #3072 from luisramos0/2-0-calc-line-items-for-take-2
...
Fix bug on calculator_decorator line_items_for where input is line_item with a nil order
2019-01-11 14:49:25 +11:00
Matt-Yorkley
4ec0f0ff73
Add bulk invoices printing
2019-01-10 09:57:06 +00:00
luisramos0
d44c4778e1
Improve line item code by merging multiple destroy hooks into a single hook: update_inventory_on_destroy. This makes the code easier to read
2018-12-24 16:39:06 +00:00
luisramos0
429e513a77
Improve line_item code by moving order.shipment reload to a line_item after_destroy hook
2018-12-23 09:15:18 +00:00
luisramos0
b83ec8d357
Add order.shipments reload to line_item.update_inventory. This is necessary when destroying line items as update_inventory may delete the shipment from the order
2018-12-23 00:23:49 +00:00
luisramos0
26b5250f2c
Fix line item destroy by forcing quantity to zero and update_inventory before_destroy so that the variant is restocked
2018-12-22 23:27:27 +00:00
luisramos0
6c70998b64
Move StockLocation.fill_status to VariantStock so we can easily override it
2018-12-21 11:33:07 +00:00
luisramos0
1835d97013
Adapt line_item.sufficient_stock? to spree 2
2018-12-21 11:33:07 +00:00
luisramos0
d641705053
Add variant scoping to availability_validator_decorator by using line_item.scoper and moving Spree::Stock::Quantifier.can_supply? to VariantStock so that it becomes overridable
2018-12-21 11:33:07 +00:00
luisramos0
c1aeb2e9a3
Improve naming in availability_validator_decorator and cover it with tests
2018-12-20 14:26:34 +00:00
luisramos0
bc22b0a58e
Fix capping quantity to stock levels by always validating line items with quantity zero
...
Stock::Quantifier.can_supply? returns false for an input of zero when stock level is negative
2018-12-20 14:26:34 +00:00
luisramos0
3085e15961
Fix order factory by making line_item.skip_stock_check work in spree 2
2018-12-20 14:26:34 +00:00
luisramos0
88b1bb61d6
Fix availability validator to include inventory_units in it's validation
2018-12-20 14:26:34 +00:00
Maikel Linke
a978e992bf
Remove tax_rates shortcut from adjustment
...
Becoming less dependent on Spree, using our own namespace, keeping
decorators small.
2018-12-19 14:42:38 +11:00
Maikel Linke
a341561446
Move tax rate finding into service and spec it
...
The `#tax_rates` method is actually not present in Spree. We encapsulate
the logic in this commit and enable better unit testing. The new tests
cover a current bug: https://github.com/openfoodfoundation/openfoodnetwork/issues/3127
2018-12-19 14:31:29 +11:00
Luis Ramos
dc6509aa83
use association on updates rather than #find
...
Co-Authored-By: sauloperez <saulopefa@gmail.com >
2018-12-17 10:31:52 +01:00
Pau Perez
be6c8be07a
Handle soft deleted products when refreshing cache
...
Since cd3add960e Spree soft-deletes products and as such the models not
destroyed but updated setting a value for the `deleted_at` field.
This turns what used to be deletes into updates thus triggering AR's
update callbacks instead of the destroy ones. As a result, this bypasses
the logic to refresh the products cache on destroy and hits the
`after_save` callback.
Furthermore, since act_as_paranoid (the soft-delete gem Spree uses) uses
a default scope to avoid retrieving soft-deleted records we need to
purposefully fetch them in order to refresh the cache.
2018-12-14 15:13:06 +01:00
Maikel
1ed880e353
Merge pull request #3206 from coopdevs/fix-redirection-on-admin-products-specs
...
[Spree Upgrade] Fix redirection on admin products specs
2018-12-14 11:59:21 +11:00
luisramos0
66e69edca4
Rename ProductOnDemand to ProductStock; move product.on_hand into it; add product.on_demand; and remove unnecessary on_demand=
2018-12-12 12:10:25 +00:00
Pau Perez
28cb1bf687
Clarify nasty boolean logic on method
2018-12-12 12:57:23 +01:00
luisramos0
4b74e50353
Make ProductsController#bulk_update work by making ProductSet#create_variant not mass-assigning the provided on_hand and on_demand values and set them after each variant is created
2018-12-11 15:18:00 +00:00
luisramos0
cdee7c0422
Merge branch 'master' into 2-0-stable-dec-10th
2018-12-10 16:41:29 +00:00
luisramos0
38ff99717a
Fix bug on calculator_decorator line_items_for where input is line_item with an nil order. Adapted line_items_for so that weight_calculator.line_items_for could be removed.
2018-12-09 19:37:11 +00:00
Pau Pérez Fabregat
72a4b4f8e2
Merge pull request #3158 from luisramos0/2-0-vos-scoping
...
[Spree Upgrade] Scopes variants on order completion and on changes to completed orders
2018-12-05 12:12:49 +01:00
Maikel
a2c8bea147
Merge pull request #3147 from luisramos0/2-0-vos
...
[Spree Upgrade] Adapt variant overrides to spree 2
2018-12-05 10:50:20 +11:00
luisramos0
782530d93b
Scope variants in shipment manifest as they are fetched from DB
2018-11-29 20:43:15 +00:00
luisramos0
a18d289292
Scope variants on line_item before save hook update_inventory
2018-11-29 20:43:10 +00:00
luisramos0
6156aca467
Delegate stock_location.move to variant, and override it in the variant overrides scope
2018-11-29 19:32:52 +00:00
Pau Perez
ab542cfdb2
Remove commented out code
2018-11-28 17:39:51 +01:00
Pau Perez
faac5f4b2d
Refactor PropertyMerge to use Ruby's #uniq instead
2018-11-28 16:21:40 +01:00
luisramos0
688ec5fb21
Fix rubocop issues in calculator_decorator and calculator/flat_percent_item_total_spec
2018-11-14 23:04:38 +00:00
luisramos0
7c0627a823
Improve failed_checkout_spec by making calculator decorator line_items_for work with new Stock::Package
2018-11-14 23:04:38 +00:00
Pau Perez
de31823151
Add #on_demand= to make product creation page work
...
We're bringing in the setter that got removed in Spree 2.0 so that we
can still pass an on_demand value from the product creation form.
However, we won't keep the getter to keep things simple. The frontend
seems to be checking the existence of variants anyway, so then it can
also check for product.master.on_demand and we avoid some logic on the
backend.
2018-11-08 11:41:58 +00:00
Pau Pérez Fabregat
e635cfc9c1
Merge pull request #2901 from luisramos0/variants_including_master
...
[Spree Upgrade] Adapt product_decorator code to spree 2 with new variants_including_master
2018-11-02 15:48:19 +01:00
Pau Pérez Fabregat
ad743a03ac
Merge pull request #2888 from luisramos0/backorders-line-items
...
[Spree Upgrade] Replace allow_backorders with variant.on_demand in the line_item_decorator
2018-11-02 15:45:25 +01:00
luisramos0
90d7b7f4a0
Merge branch 'master' into 2-0-stable-oct-25
2018-10-25 14:28:58 +01:00
luisramos0
92c7db2249
Adapt product_decorator code to spree 2 where variants_including_master now makes use of Paranoi gem
2018-10-20 23:43:33 +01:00
luisramos0
c373d5ab33
Replace usage of global allow_backorders with variant.on_demand in line item sufficient stock method
2018-10-18 19:44:38 +01:00
luisramos0
a92e8c9923
Improve readability of shipment decorator
2018-10-18 10:54:21 +01:00
luisramos0
91f52d80c8
Fix problem in order and adjustment model specs by fixing the order.adjustment association
...
This fix was taken from spree 2.1 here 3fa44165c7
2018-10-18 10:53:00 +01:00
luisramos0
2ccbb87adc
Fix payment decorator bug
...
Payment line items must come from the order, payment does not have inventory_units
2018-10-18 10:53:00 +01:00
Maikel
3a2e52cc98
Merge pull request #2780 from luisramos0/2-0-stripe-factory
...
[Spree Upgrade] Fix Stripe connect factory
2018-10-18 14:54:28 +11:00