Commit Graph

1021 Commits

Author SHA1 Message Date
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
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
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
luisramos0
98161daa90 Refactor duplicated distributors association in payment_method and gateway to a concern 2018-10-16 20:27:22 +01:00
Luis Ramos
3e4f92fe92 Merge branch '2-0-stable' into 2-0-adjust-basic-spec-fix 2018-10-16 17:33:33 +01:00
Pau Pérez Fabregat
f2fe3c8cff Merge pull request #2812 from luisramos0/2-0-adjust-enterprise-fees-spec-fix
[Spree Upgrade] Fix enterprise fees specs in adjustment_spec - tax_rate
2018-10-16 18:02:21 +02:00
luisramos0
b3c56e6823 Duplicated payment method distributors association to gateway. This fixes the inheritance problem found in stripe gateway
See PR 2780 for more details
2018-10-16 16:55:18 +01:00
Pau Pérez Fabregat
db9669b4ce Merge pull request #2817 from coopdevs/remove-reference-to-on-demand
[Spree Upgrade] Remove on_demand from Product serializers
2018-10-16 17:52:42 +02:00
Maikel Linke
61797fff56 Restrict deletion of address explicitely
Enterprises have an `address_id` which must point to a valid
`Spree::Address`. As Rubocop suggested, I restricted the deletion of
addresses when they are still associated to an enterprise.

Without declaring `dependent: :restrict`, trying to delete the address
would raise `ActiveRecord::InvalidForeignKey`. Now it is more specific
and raises `ActiveRecord::DeleteRestrictionError`.

I didn't find code rescuing the InvalidForeignKey when deleting addresses. I
actually think that we never delete addresses. So this change should not
have any impact on the execution.
2018-10-16 15:18:44 +11:00
Maikel Linke
a8705ca179 Simplify address methods 2018-10-16 14:49:36 +11:00
Maikel Linke
5021ed9c69 Simplify by using Rails tools 2018-10-16 14:49:35 +11:00
Maikel Linke
34849c441a Reduce complexity and duplication 2018-10-16 14:48:12 +11:00
Maikel Linke
c4437a6437 Style address decorator 2018-10-16 14:48:12 +11:00
Maikel Linke
b109f6d78c Remove temporary reporting code 2018-10-16 14:48:12 +11:00
luisramos0
87cd73ddba Merge branch 'master' into 2-0-stable-oct 2018-10-15 17:09:26 +01:00
Pau Perez
a5a2cb8ea7 Revert "Merge pull request #2856 from luisramos0/2-0-adjust-clean-up"
This reverts commit fa689b6607, reversing
changes made to 2aeed9763c.
2018-10-15 15:48:48 +02:00
luisramos0
bd31348b94 Improve docs and readability on tax_rate_decorator 2018-10-12 23:09:35 +01:00
luisramos0
b7416e42f4 Adapt tax_rate_decorator to new spree version. Spree's default tax calculator now is checking line_items tax category, not the product tax category. See Spree's change here: a0a4b91f13 (diff-46e557ca8717d6ab5039470a40d00ea8) 2018-10-11 23:02:17 +01:00
Pau Perez
5bd375d422 Favor early return over dumb else branch 2018-10-11 15:52:40 +02:00
Pau Perez
c8c16f0e8a Use Rails 3.2 validates syntax 2018-10-11 15:52:40 +02:00
Pau Perez
cbac916e66 Validate unit value when updating variant_unit
Variants whose product's variant_unit is weight or volume require
a unit_value.
2018-10-11 15:52:40 +02:00
Pau Perez
a2228d4131 Make ProductSet parseable by humans
Now it's imposible to understand what is really going on. Feels more
like assembler than Ruby.
2018-10-11 15:52:40 +02:00
Pau Perez
d43726504b Make #update_attributes parseable by humans
As it is this is impossible to follow.
2018-10-11 15:52:40 +02:00