Commit Graph

181 Commits

Author SHA1 Message Date
Maikel Linke
d4512904ea Make product order deterministic
When products are sorted by name and two products have the same name,
their order is undefined. With pagination, two pages can have a
different order of products with the same name which then means that two
pages can return the same product.

Sorting by product id makes sure that the result is always in the same
order, for every page.
2019-12-05 15:37:10 +11:00
Maikel Linke
50093c325a Move checkout locking to its own service
It gives this complex logic more space and allows for better structure
and more comments at the right places.
2019-11-19 18:18:01 +11:00
Matt-Yorkley
5082a133a1 Refactor adjustment fetching into new service and module 2019-11-12 11:57:54 +00:00
luisramos0
9404aacfb2 run rubocop --auto-correct 2019-11-10 18:42:43 +00:00
Luis Ramos
db8e2891d4 Merge pull request #4417 from Matt-Yorkley/shopfront_patchination
Ensure variants returned in #variant_relation are DISTINCT
2019-11-01 12:16:01 +00:00
Matt-Yorkley
67a5a1cdc2 Fix incorrectly ordered entries with duplicate product names in OC and custom taxon ordering applied 2019-10-31 12:14:14 +00:00
Matt-Yorkley
f8209ac7d5 Ensure results in #products_relation are DISTINCT 2019-10-30 19:04:28 +00:00
Matt-Yorkley
6d50176e6b Ensure results in #variants_relation are DISTINCT 2019-10-30 17:13:52 +00:00
Luis Ramos
3e7bd7dc19 Merge pull request #4376 from luisramos0/ghosts
Remove product from Order Cycles if product supplier changes
2019-10-28 21:17:48 +00:00
Luis Ramos
02c0b89fa0 Merge pull request #4345 from Matt-Yorkley/shopfront_pagination
Shopfront pagination
2019-10-21 16:02:12 +01:00
Matt-Yorkley
542c1bf684 #slice :params in controller and rename to :args in service context 2019-10-18 21:15:13 +01:00
Matt-Yorkley
6433d69d02 Add comments on scoping ProductsRenderer results 2019-10-18 21:15:13 +01:00
Matt-Yorkley
b3c89a9d6c Move OpenFoodNetwork::ProductsRenderer (lib) to ProductsRenderer (service) and refactor 2019-10-18 21:15:13 +01:00
luisramos0
9f3b4100c3 Improve code by incorporating code review feedback 2019-10-18 10:26:03 +01:00
luisramos0
b625ea0c61 Extract to class ExchangeVariantDeleter 2019-10-17 19:13:45 +01:00
Matt-Yorkley
f134cd9473 Extract tag_rule filtering into separate service 2019-10-09 17:26:58 +01:00
Dan Ingenthron
dbf34da87b Rubocop fixes 2019-10-08 18:37:16 -05:00
Dan Ingenthron
b4be2cc2d4 Add default shipping category service and update create product form 2019-10-08 18:37:15 -05:00
Matt-Yorkley
e96252f2ed Add tag_rules logic to main query before pagination 2019-10-08 10:11:24 +01:00
luisramos0
95bc8fa984 Remove logic from OrderCycleDistributedProducts related to obsolete master variants in OCs, this is a condition that will never happen now since we ensure products always have a standard variants
A migration will be added as well to clean up any very old master variants available in order cycles
2019-10-07 14:53:44 +01:00
Luis Ramos
96428c11c6 Merge pull request #4334 from Matt-Yorkley/products_renderer
Products renderer
2019-10-03 13:47:04 +01:00
Matt-Yorkley
c038b485b1 Rename service and methods to remove use of "shop" term 2019-10-01 14:43:47 +01:00
Matt-Yorkley
032741c54f Refactor ProductsRenderer variants queries
This removes another N+1 and allows pagination applied to the inital query to also affect the returned variants
2019-09-29 17:41:58 +01:00
Matt-Yorkley
d5e90c3c6c Extract #load_products logic into a new service 2019-09-29 00:10:47 +01:00
Matt-Yorkley
cecebb82f4 Move distributed products relation out from OrderCycleDistributedProducts 2019-09-27 17:25:50 +01:00
Maikel Linke
efd450606e Replace deprecated validates_presence_of
This syntax has been deprecated in Rails 3:
https://guides.rubyonrails.org/3_0_release_notes.html#patches-and-deprecations
2019-09-24 19:16:05 +10:00
JASON KNOEPFLER
91a52ead58 Guard against malformed request referer 2019-09-14 09:13:44 -07:00
Maikel
68393f1444 Merge pull request #4037 from luisramos0/subs_stock
Subscriptions - When editing subscriptions, check stock levels when changing orders in current OC
2019-08-06 15:16:00 +10:00
luisramos0
3b467dbae8 Adapt line_item_syncer to the case where item is not added to the completed order because of insufficient stock and the subscription quantity is updated for that item afterwards 2019-07-16 12:08:08 +01:00
luisramos0
306390440a Revert "Swith line_item_syncer.create_new_items from deleting line item in the case of stock issue, to simply set the quantity to zero. This makes things easier later as the line item is already present if the user tries to change quantity of the subscription_line_item"
This reverts commit d153e58933.
2019-07-16 11:00:21 +01:00
luisramos0
267131626e Fix typo and add test case to cover out of stock case 2019-07-16 10:58:25 +01:00
luisramos0
02099ebdae Remove details about stock in line_item_syncer so that we avoid confusing the user with stock numbers, this way the user will know what is the problem and can check stock levels and the order for more details 2019-07-14 21:40:57 +01:00
luisramos0
d153e58933 Swith line_item_syncer.create_new_items from deleting line item in the case of stock issue, to simply set the quantity to zero. This makes things easier later as the line item is already present if the user tries to change quantity of the subscription_line_item 2019-07-14 20:59:42 +01:00
luisramos0
c2a59a374c Fix rubocop issues by simplifying method 2019-07-14 17:21:15 +01:00
luisramos0
2a1011921b Reuse line_item_syncer.add_order_update_issue in line_item_syncer.update_item_quantities to add stock info to the update_quantity order issues 2019-07-14 16:43:46 +01:00
luisramos0
df27ee0d3e Refactor line_item_syncer.add_order_update_issue out of line_item_syncer.create_new_items 2019-07-14 16:06:09 +01:00
luisramos0
c2851015ce Fix deleting created item (destroy doesnt work before save) and add order_update_issue with message so that user can understand what happened 2019-07-14 15:58:00 +01:00
luisramos0
d0c246c345 Fix some rubocop issues 2019-07-14 12:28:32 +01:00
luisramos0
6aed9ba549 Make line_item_syncer delete new line items if stock is insufficient 2019-07-13 22:57:13 +01:00
luisramos0
4f2bc33ec3 Change line_item_syncer to verify stock if order is already complete, this will happen for orders in the current OC when a subscription is changed 2019-07-13 20:56:34 +01:00
luisramos0
0f3404ca27 Rename order_syncer.future_and_undated_orders to explicitly include completed orders from current OC: orders_in_order_cycles_not_closed 2019-07-12 22:20:09 +01:00
luisramos0
5184fa540c Adapt enterprise_relationship permitting and permitted_by scopes to rails 4 2019-07-03 20:18:00 +01:00
luisramos0
7bd32d4967 Fix usage of variant.on_hand in subscriptions order factory, we now take on_demand into account
This fixes a problem introduced in 12eab1bfa9 (diff-c3c4192f302cc77e9a8547012fe86ddb), since then variant.on_hand does not return infinity if variant is on_demand
2019-06-25 14:47:47 +01:00
Matt-Yorkley
08b2b19d5e Improve handling of invalid characters in uploaded CSV files 2019-06-19 09:29:59 +01:00
Kristina Lim
ea8d189d6c Bulk update OC variant changes in OC form 2019-05-28 21:27:43 +08:00
luisramos0
86b0d71c7e Result of rubocop auto-correct and rebuilding rubocop_manual_todo 2019-05-28 12:57:29 +01:00
Luis Ramos
4afa0cdca1 Merge pull request #3589 from kristinalim/fix/2788-ship_address_changed
2788 [Subscriptions] Fix address issues when syncing subscriptions and orders
2019-05-03 23:48:32 +01:00
Kristina Lim
19726061e4 Make Order#address_from_distributor public 2019-05-01 07:17:50 +08:00
Kristina Lim
92dc43d7a2 Make OrderUpdater#shipping_address_from_distributor public 2019-05-01 07:16:56 +08:00
Kristina Lim
0933d53134 Extract method OrderSyncer#update_ship_address_for 2019-05-01 07:16:56 +08:00