Commit Graph

4161 Commits

Author SHA1 Message Date
Maikel Linke
f098327808 Remove now useless wrapper method 2025-01-22 11:31:27 +11:00
Maikel Linke
d5ff1f5c71 Remove StockItem#stock_location 2025-01-22 11:20:05 +11:00
Maikel Linke
87d20877ad Remove Shipment#stock_location 2025-01-22 11:20:05 +11:00
Maikel Linke
33c6f3b94f Remove StockLocation#stock_item 2025-01-22 11:20:05 +11:00
Maikel Linke
aa9daed66e Remove unused StockLocation#stock_items
And the reverse association.
2025-01-22 11:20:05 +11:00
Maikel Linke
6dfa184a15 Remove unused StockLocation#stock_movements 2025-01-22 11:20:05 +11:00
Maikel Linke
34fdcface2 Remove unused StockLocation#stock_item_or_create 2025-01-22 11:20:04 +11:00
Maikel Linke
450576a938 Remove unused StockLocation#count_on_hand 2025-01-22 11:20:04 +11:00
Maikel Linke
1650ccd55a Remove unused StockLocation#backorderable? 2025-01-22 11:20:04 +11:00
Maikel Linke
531c068347 Remove StockLocation#fill_status, now on Variant 2025-01-22 11:20:04 +11:00
Maikel Linke
68a0f8df1f Remove detour via StockLocation updating stock 2025-01-22 11:20:04 +11:00
Maikel Linke
248110cfb3 Make stock location association optional
Prepare for removal
2025-01-22 11:20:04 +11:00
Maikel Linke
cf35e48d14 Remove unused app config options
This has been defined in ENV for a while
2025-01-21 20:11:05 +01:00
Gaetan Craig-Riou
c71ae35685 Fix payment_total calculation
For payment that complete during the checkout (Paypal, Stripe) the
amount was recorded twice against `order.payment_total`. This is because
the `payment_total` gets updated in an afer_save Payment callback when a
payment is completed, and then once more when we process payment in
`Spree::Order#process_each_payment`.
This is an existing  issue on master, but it was hidden by the
`update_shipping_fees!` callback, it trigerred an update of the order's
total, which then updated `order.payment_total` with the correct value.
Now that we removed the callback, the bug showed up.

Note, I updated the stripe specs for consistency even though they are
currently disabled.
2025-01-20 16:07:32 +11:00
Filipe
3c1dd10219 Merge pull request #13047 from mkllnk/spree-roles
Clarify that our only user role is "admin" and simplify code
2025-01-16 18:06:49 -06:00
Gaetan Craig-Riou
20df5c23e8 Remove before save callback to update shipping fees
It should be handled in the controller, it's currently handled in
`Spree::OrderContents#remove`. As long as we don't manually remove line
item from an order we should be good.
Currently it gets trigerred each time the order is saved, which seems to
happen mutiple time when we finalize an order. It's a bit useless to
recalculated the fees over and over
Context, it was added here : 217eda8362
2025-01-15 15:44:24 -06:00
Maikel Linke
c9eed4f5b8 Trigger new backorder only when user checks out
When an admin creates an order, then AmendBackorderJob is called which
can also trigger a new backorder if needed.

This means that we are not creating backorders via subscriptions any
more. It has never been requested and we can bring that back if needed.
2025-01-15 15:52:57 +11:00
Maikel Linke
c1198c8e1f UNSAFE Style Rails/CompactBlank 2025-01-10 09:14:34 +11:00
Maikel Linke
49ec9a3136 Style Rails/WhereRange 2025-01-10 08:43:58 +11:00
Filipe
5fdd0e5d42 Merge pull request #12954 from rioug/fix-shipment-not-updated
Ensure shipment gets updated when an order is updated
2024-12-26 15:56:12 -06:00
Maikel Linke
5db8cb452e Leverage Rails' caching when checking for admin
The privileges of a user should never change within a request
life cycle. The `spree_roles` association is very small, between 0 and 2
items are quickly searched in memory without the need of additional
database queries.

From memory, I've seen a lot of spree_roles queries in log files per
request. This should reduce it to one.
2024-12-19 10:12:31 +11:00
Maikel Linke
54f83b45c8 Replace has_spree_role? with simpler admin?
We have only one role, so let's get rid of the unneeded method.

Now we are in a better place to get rid of Spree::Role and replace it
with a simple boolean.
2024-12-19 09:19:01 +11:00
Maikel Linke
a7140d1f60 Use only admin role, on demand
We are now creating the role on demand which removes the need for
seeding it as well.
2024-12-19 09:02:04 +11:00
Maikel Linke
fa82f80ab9 Use plain static value for spree_roles 2024-12-19 08:50:10 +11:00
Maikel Linke
9ca1b48d2e Move backorder amendment out of order callback
Triggering it for each order is inefficient when we cancel them in bulk.
The callback doesn't allow us to optimise this.
2024-12-11 12:40:46 +11:00
Ahmed Ejaz
16cae2dbcc 12973: fix error raised in variant creation
- if the sheet doesn't have the units present, then the variant is not saved due to model validation
- After that, while assigning on_hand value, error is raised that the variant is not created first
- Now this commit makes sure that the variant is created before implementing above logic
2024-12-05 16:18:21 -06:00
Gaetan Craig-Riou
4a6e4d4c6d Ensure shipment is updated when using update_or_create
`Spree::OrderContents#update_or_create` is used to update the cart when
on the /shop page. If you start an order and proceed to the "Order
summary" step, and then decide to update your order by using the shop
link next to the cart, such update wouldn't update the shipment.
This result in the order page in the backoffice displaying the wrong data,
and more importantly, in the stock not being updated.
So now we ensure shipment will be updated, which result in the checkout
flow being restarted, thus making sure the shipment is updated.
2024-12-04 16:30:45 +11:00
Maikel
de938f6f10 Merge pull request #12949 from rioug/12859-use-VINE-voucher
[City OFN Voucher] A shopper can use a VINE voucher
2024-12-03 14:04:44 +11:00
Maikel
697f430156 Merge pull request #12992 from mkllnk/errors
Add simpler Alert.raise interface to notify Bugsnag
2024-12-03 13:29:11 +11:00
Gaetan Craig-Riou
73819a4638 Fix unique validator for vouche code
Paranoia doesn't support unique validation including deleted records:
  https://github.com/rubysherpas/paranoia/pull/333
We use a custom validator, ScopedUniquenessValidator to avoid the issue
2024-11-28 13:35:01 +01:00
Gaetan Craig-Riou
a2c4c44eea Move Vine voucher to Vouchers::Vine
A Vine voucher is really a specific type of FlatRate voucher but because
a Vine voucher can be used by mutiple enterprise, it can be considered
different enough to warrant it's own class.
It still share a lot of the behaviour of a FlatRate voucher, so to avoid
duplication, all the shared functionality have been moved to a
Vouchers::FlatRatable concern.
2024-11-28 13:35:01 +01:00
Gaetan Craig-Riou
7726c7d129 Per review, rename not_vine scope to local
- use IS DISTINCT FROM instead of two conditions
- added spec for scope
2024-11-28 13:35:01 +01:00
Gaetan Craig-Riou
c17eddd69b Add Voucher#vine?
And small refactor
2024-11-28 13:35:01 +01:00
Gaetan Craig-Riou
3a367ceb6e Handle adding a VINE voucher to an order
Plus specs
2024-11-28 13:35:01 +01:00
Ahmed Ejaz
3a3d729dcb 12968: fix product import update 2024-11-25 16:36:13 +05:00
Ahmed Ejaz
283706114e 12968: update condition to match variant with unit scale 2024-11-25 16:36:13 +05:00
Maikel Linke
9f859f420d Remove unnecessary error creation 2024-11-21 15:58:56 +11:00
Maikel Linke
0d8df5d2a8 Replace Bugsnag calls with Alert.raise 2024-11-21 15:58:55 +11:00
Maikel Linke
a8fb6492f4 Lookup backorder for updates with saved link 2024-11-19 15:53:59 +11:00
Maikel Linke
4610141ed8 Add shortcut to order's exchange 2024-11-19 15:53:59 +11:00
Maikel Linke
8098131dba Store link to open backorder
We don't use the link yet, but it's there.
2024-11-19 15:53:59 +11:00
Maikel Linke
597d9ad314 Add semantic links to Exchange 2024-11-19 15:53:59 +11:00
Maikel Linke
1ce0b25bb0 Switch SemanticLink to use new association
And ActiveRecord magic does the rest when used correctly.
2024-11-19 15:53:58 +11:00
Maikel Linke
c07ec6cdfd Polymorphically associate SemanticLinks to variant 2024-11-19 15:53:58 +11:00
Ahmed Ejaz
654263a823 add systems spec 2024-11-15 11:09:56 +01:00
Maikel Linke
271475893d Remove unused stock aggregation 2024-11-01 16:46:35 +11:00
Filipe
a08b0a8b32 Merge pull request #12917 from nicogaldamez/ignore-name-column-for-customers
Ignores name column on customer model
2024-10-31 17:35:47 -06:00
Filipe
0d97f992b9 Merge pull request #12943 from mkllnk/sanitise
Sanitise HTML attributes in the database
2024-10-31 17:32:56 -06:00
David Cook
3756e368c8 Merge pull request #12921 from rioug/12908-error-when-tax-refund
Add Bugsnag notification if we reach tax rate refund code
2024-10-30 14:51:40 +11:00
Maikel Linke
e0638b1765 Amend backorder after cancellations
The new job class blends code from the BackorderJob and the
CompleteBackorderJob for the specific case of adjusting quantities after
an order has been cancelled.

I would like to write a more general class which can be used for any
order amendmends but this was the quickest solution to cater for
currently running pilots.
2024-10-24 17:08:50 +11:00