Commit Graph

7482 Commits

Author SHA1 Message Date
Pau Perez
c50fa1224b Do not restore adjustments that got deleted
If something in the block deleted the adjustment update_attribute will
fail.
2019-01-29 09:40:54 +01:00
Pau Perez
59f39b14f4 Do not restore adjustments that aren't in the hash
This way we don't modify adjustments that get created as part of the
passed block. We don't know how this might be used in the future.
2019-01-29 09:40:54 +01:00
Pau Perez
f4b790eefa Restore adjustments state after updating
We don't know exactly if all adjustments are closed in all
circumstances, so it's better to be conservative until we figure out.
Chances are that non-completed orders have them open.
2019-01-29 09:40:54 +01:00
Pau Perez
8eab3c5ec1 Extract meaningful methods from controller action
This sets the ground for future refactorings while providing some more
readability and context.
2019-01-29 09:40:54 +01:00
Pau Perez
c9429760cd Trigger the appropriate callbacks from controller 2019-01-29 09:40:54 +01: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
2b95b5e797 Merge pull request #3347 from luisramos0/2-0-default-on-demand
[Spree Upgrade] Sets StockLocation.backorderable_default to false in test factories
2019-01-21 17:34:46 +01:00
Pau Pérez Fabregat
807c45a25c Merge pull request #3349 from coopdevs/fix-shipment-without-fee
Fix shipment without fee
2019-01-21 14:51:10 +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
luisramos0
0460e7fc6c Merge branch 'master' into 2-0-stable-jan-17th 2019-01-17 22:51:25 +00:00
luisramos0
f896e78e6f Set StockLocation.backorderable_default to false in DefaultStockLocation and in StockLocation factory.
This makes the default value of variant.on_demand false in all environments and in tests.

Additionally, adapt VariantStock.on_demand test and product factory to this change (setting on_hand value in product factory so it's not out of stock by default).
2019-01-17 20:28:05 +00:00
Pau Pérez Fabregat
c178478a4f Merge pull request #3346 from luisramos0/headless-chrome
Merge Headless Chrome to master
2019-01-17 20:04:27 +01:00
Pau Pérez Fabregat
29990f25c1 Merge pull request #3325 from mkllnk/2469-fix-async-js-requests
2469 Fix async js requests
2019-01-17 20:03:54 +01:00
Rob Harrington
cc55f59b00 Update tag_rules_spec to work with Selenium 2019-01-16 16:21:30 +00: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
Pau Pérez Fabregat
b05b2c3a5a Merge pull request #3254 from coopdevs/add-default-stock-location
[Spree Upgrade] Create the default StockLocation in DB
2019-01-16 12:57:45 +01:00
luisramos0
ea61e415e1 Add bugsnag notifications to detect potential dead code scenarios in variants_stock_levels and cart_service 2019-01-15 13:42:51 +00:00
luisramos0
aa603c9a84 Make rubocop happy on cart controller, cart service and stock levels service 2019-01-15 13:42:51 +00:00
luisramos0
b0449be302 Add spec to test cart controller handling of variant overrides on cart populate 2019-01-15 13:38:58 +00:00
luisramos0
c0473a4505 Extract variants_stock_levels from cart_controller and refactor some names 2019-01-15 13:38:58 +00:00
Maikel Linke
5a5db3c458 Fix state of RequestMonitor
`@loading` was set to false when the request with the last id finished.
But another request started earlier (having a lower id) could take
longer. `@loading` was set to false even though these long requests were
still active.
2019-01-15 15:45:49 +11:00
Maikel Linke
ca9673f562 Fix Dereferencer service
It failed when `object[attr]` was `undefined` instead of `null`.
2019-01-15 15:43:00 +11:00
Pau Perez
10a678bdfe Rely on Spree's default StockLocation 2019-01-11 16:39:06 +01:00
Pau Perez
9ebe112bcc Abstract OFN's default stock location into a class 2019-01-11 15:52:09 +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
Maikel
fff054efc1 Merge pull request #3169 from luisramos0/hubPermissions
Add guard clause on variant overrides filter in case hub id is not present in the hubPermissions
2019-01-11 10:41:57 +11:00
Maikel
6c3d769121 Merge pull request #3229 from mkllnk/3127-tax-rates-report
3127 More robust tax rates report
2019-01-11 10:41:12 +11:00
Pau Pérez Fabregat
399cc5f796 Merge pull request #3224 from alvaro-chalar/footer-message
Add custom footer message in reports section
2019-01-09 16:01:02 +01:00
Pau Pérez Fabregat
1815a2116d Merge pull request #3257 from coopdevs/refactor-enterprise-controller-shop-injection
Refactor to reveal how we load enterprises in shop
2019-01-09 13:21:56 +01:00
Maikel
abe4f78e5c Merge pull request #2988 from Matt-Yorkley/pi/utf8
Pi/utf8
2019-01-09 15:39:05 +11:00
luisramos0
134a51ab1d Fix merge typo in the cancel email method of the order mailer decorator 2019-01-08 15:31:28 +00:00
luisramos0
e28f9a7c84 Merge branch 'master' into 2-0-stable-jan-8th 2019-01-08 14:29:50 +00:00
Maikel
14ccb39478 Merge pull request #3287 from luisramos0/2-0-edit-variants
[Spree Upgrade] Fix variant edit page optiontype deface code
2019-01-08 16:37:38 +11:00
luisramos0
676f0e71b8 Fix variant edit page optiontype deface code 2019-01-07 12:16:47 +00:00
luisramos0
bdefc0ebd1 Fix admin orders spec by adapting the spec to the recently de-defaced page 2019-01-07 12:16:28 +00:00
Maikel Linke
a8ccb9b818 Explain why we look for the closest tax rate of a fee 2019-01-04 17:24:45 +11:00
Pau Perez
ddf916814f Reduce complexity of EnterprisesController#shop
As asked by Rubocop.
2019-01-03 11:17:10 +01:00
Pau Perez
51da607ab1 Fix too long line 2019-01-03 11:17:10 +01:00
Pau Perez
46760ce28c Do not double-render when there is no stock 2019-01-03 11:17:10 +01:00
Pau Perez
cca15e75a6 Refactor to reveal how we load enterprises in shop
By sticking to Rails conventions we make it more obvious how (badly) we
are loading enterprises in EnterprisesController#shop and shed some
light on the obscure InjectionHelper.

This will also make it easier to improve its performance in the future as
it's among the top offenders. See https://www.skylight.io/app/applications/ibo3NOqCYMnq/1545851520/1d/endpoints/EnterprisesController%23shop?responseType=html
2019-01-03 11:17:10 +01:00
Maikel
f68fd6eea9 Merge pull request #3242 from luisramos0/2-0-line-item-destroy
[Spree Upgrade] Fix line item destroy by forcing quantity to zero and update_inventory
2019-01-02 17:44:25 +11:00
Alvaro Chalar
6dccbeca70 Add custom footer message in reports section 2018-12-27 12:22:48 +01: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
Pau Pérez Fabregat
1ab50798fe Merge pull request #3189 from luisramos0/3043-i18n-emails
Make all mailers use appropriate locale when sending emails
2018-12-24 14:59:04 +01: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
7155f28acf Remove shipping_method_id from RestartCheckout, destroying shipments is now enough as order.shipping_method_id is no longer used and will be dropped. See #2683 for more details 2018-12-21 15:13:43 +00:00
luisramos0
6c70998b64 Move StockLocation.fill_status to VariantStock so we can easily override it 2018-12-21 11:33:07 +00:00