Commit Graph

3395 Commits

Author SHA1 Message Date
Filipe
2d28a57c6f Merge pull request #10922 from jibees/10903-white-label-make-logo-url-link-more-tolerant-in-terms-of-format-and-add-example
[White Label] Make logo url link more tolerant in terms of format
2023-06-07 10:00:31 +01:00
Maikel Linke
1ebacf96ad Ignore accidental spaces around whitelabel URL 2023-06-07 13:12:06 +10:00
Jean-Baptiste Bellet
40111910b6 Validates white_label_logo_link on enterprise model 2023-06-05 11:24:07 +02:00
Maikel Linke
1cbb45a618 Style Lint/RedundantSafeNavigation
The cop suggested to change more but they were false positives:

* https://github.com/rubocop/rubocop/pull/11915
2023-06-05 12:09:32 +10:00
Jean-Baptiste Bellet
880ba85791 Add http to white label logo link if this do not start with http 2023-06-01 17:37:05 +02:00
Filipe
2ba0f635f2 Merge pull request #10860 from Matt-Yorkley/order-cycle-deleting
Delete exchange variants in bulk when deleting an order cycle
2023-06-01 13:49:32 +01:00
Matt-Yorkley
0ac10472cf Update app/models/spree/line_item.rb
Co-authored-by: Maikel <maikel@email.org.au>
2023-06-01 10:12:19 +01:00
Matt-Yorkley
a20277c3a7 Completely remove option_values and option_types from the codebase 2023-06-01 10:12:19 +01:00
Matt-Yorkley
35b41fc7fe Persist unit_value on variant and "option value text" on variant and line_item and improve related AR callbacks 2023-06-01 10:12:19 +01:00
Matt-Yorkley
bfcf1203ac Delete dead code 2023-06-01 10:11:20 +01:00
Matt-Yorkley
3e5ecba738 Remove unhelpful Helper 2023-06-01 10:11:20 +01:00
Jean-Baptiste Bellet
925b0e0308 Add a form in admin to create/update a custom tab for an enterprise 2023-05-25 09:19:51 +02:00
Jean-Baptiste Bellet
839419791f Create CustomTab model, that belongs to an enterprise 2023-05-25 09:19:51 +02:00
Maikel Linke
ef3422bf58 Update syntax and clarify use of outdated gem 2023-05-23 08:23:58 +02:00
Maikel Linke
90cbac7176 Validate email domains
The gem checks the DNS system for a valid domain entry.
2023-05-23 08:23:58 +02:00
Maikel Linke
ffc45f77cf Validate user email syntax on change
We probably have invalid entries in the database and we don't want these
records to suddenly become invalid. People would not be able to log in.
2023-05-23 08:23:58 +02:00
Matt-Yorkley
459ef5f0d1 Only delete related exchange variants if exchange is outgoing 2023-05-22 11:09:29 +01:00
Konrad
fed7c3da51 Merge pull request #10761 from rioug/vouchers-any-amount
[Vouchers] Flat rate of any amount
2023-05-19 17:39:33 +02:00
Matt-Yorkley
a8559e621f Simplify exchange variant callback and prefer delete over destroy
Delete is faster than destroy but should only be used if the object has no callbacks or touches.
2023-05-19 11:26:33 +01:00
Matt-Yorkley
434c9ae110 Delete exchange variants in bulk when deleting an order cycle 2023-05-19 10:46:55 +01:00
Filipe
3d1b0816ed Merge pull request #10512 from abdellani/fix-tax-not-charged-when-tax-category-set-to-inherit-from-product
Prevent saving the enterprise fee when a per order calculator is selected along with 'Inherit from product'
2023-05-18 13:43:14 +01:00
Konrad
39bb1f6f41 Merge pull request #10832 from Matt-Yorkley/cloning
Clone all ExchangeVariant objects in bulk
2023-05-18 14:32:30 +02:00
David Cook
c0c123a92a Remove localized number logic from weight calculator
Follow-on from a46eef291c
2023-05-17 14:10:58 +02:00
saunmanoj888
aee7645e29 Fix searching issue with full name on bulk order management 2023-05-17 13:14:10 +02:00
Gaetan Craig-Riou
b585f77be4 Make enterprise mandatory for a voucher
It should have already been the case...
2023-05-16 16:20:04 +10:00
Gaetan Craig-Riou
15eee8175e Add amount to voucher
Change value to amount to be more consistent
2023-05-16 16:19:59 +10:00
Maikel
10c918be75 Merge pull request #10732 from mkllnk/report-email
[Hidden] Notify about completed report with download link via email
2023-05-16 10:25:23 +10:00
Maikel Linke
08aff56e20 Expire report files after 1 week, maximum for S3
We didn't see this in tests which use disk storage. But AWS S3 has a
maximum of one week for URL expiry.
2023-05-15 19:41:45 +02:00
Maikel Linke
299bc253a4 Expire report download links in a month, not 5mins 2023-05-15 19:41:45 +02:00
Gaetan Craig-Riou
d29119f5c5 Remove non need belongs_to associations from Adjustments
It turns out the "tax_rate" association isn't used and wasn't working.
Same for the "voucher" one, which I added to be consistent with existing
code.
Both of these weren't caught by the specs because you can't test associations
with a custome relation with 'shouda-matchers' see: https://github.com/thoughtbot/shoulda-matchers/issues/981
2023-05-15 13:42:40 +10:00
Matt-Yorkley
9b1725d39f Fix model name in adjustment association 2023-05-15 13:42:40 +10:00
Gaetan Craig-Riou
17e32a89f8 Add VoucherAdjustmentsService to handle calculation
Refactor Voucher to move voucher adjustments calculation
to VoucherAdjustmentsService
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
56e981d300 Refactor Voucher to get rid of CalculatedAdjustments
Voucher adjustment have complicated calculation that prevent us from
using Spree::Calculator, and we need to override CalculatedAdjustments
method, so no point using it.
We still keep the same methods to stay as consitent as possible in
regards to adjustments
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
43ab881181 Rename order association to voucher_adjustments
The name vouchers is a bit confusing as the order is linked to a
voucher adjutment and not the actual voucher
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
94294fa161 Voucher adjustment, add ordering by created_at
It gives us a consistent result when calling #vouchers
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
bb9d835bd8 Fix rubocop warning 2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
87cc525d27 Refactor #vouchers
Use "has_many" instead of a method
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
4b5d6d7eac Fix voucher adjustments association
Add missing, "inverse_of" and "dependent" options. Use :nullify as
for "dependent" because we would want to keep the adjustments on order
even if the voucher is deleted.
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
5064bf5383 Allow voucher adjustment to be created with an amount of 0
Although unlikely, we should still be able to create a voucher amount
with. This can happen if the order.total is for instance.
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
9789911523 Rework how voucher are applied to an order and handle tax calculation
At the time when we can apply a voucher to an order (payment step) we
don't have any data on possible taxes and payment fees. These are
calculated when we move to the summary step. So voucher are applied in
two step:
- create an "open" voucher adjustment on the order when a customer enters
a voucher code.
- when we move to the summary step, recalulate the amount and
possible tax for the voucher adjustment, once taxes and payment fees
have been included in the order. And then close the original and update
order to reflect the changes
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
d157d91054 When voucher cover more than order total, use only amount needed
The checkout payment step will also show a warning.
The amount used is stored in the adjustment created, so we will be able
to track how much has been used down the line.
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
b6213b25e9 add acts_as_paranoid to voucher
This is so the relation
`belongs_to :originator, -> { with_deleted }, polymorphic: true`
setup in Spree::Adjustement works as expected.
2023-05-15 13:42:37 +10:00
Gaetan Craig-Riou
3ec58d8791 Add #vouchers, return an array of voucher adjustments 2023-05-15 13:42:37 +10:00
Gaetan Craig-Riou
9b680e1a92 Add CalculatedAdjustments to Voucher
Vouchers are only flat rate of 10 for now, so we add a FlatRate
calculator in a before_validation callback
2023-05-15 13:42:37 +10:00
Maikel Linke
636b365304 Tell Rubocop and devs about bulk insert 2023-05-12 10:30:47 +10:00
Matt-Yorkley
b139087c5f Clone ExchangeVariant objects in bulk
An ExchangeVariant is a simple representation of a join table between Exchange and Variant. Previously this code was triggering an additional INSERT query for every variant added to the newly cloned exchange. Some exchanges have ~3000 variants! The code now creates them in bulk in a single INSERT statement. When cloning large order cycles this can improve performance by ~1000% or so.
2023-05-11 20:51:20 +01:00
Maikel Linke
25b7f1749c Simplify error when tax rate can't be inherited
I changed the text to focus on the resolution: the user needs to choose
a tax category or a different calculator.

I associated the error to the model to prevent the attribute name from
being included in the error message. Alternatively, we could have
changed the name of the attribute to match the UI. But this error
affects the combination of two attributes, none of them is invalid on
its own.

I'm using Rails' default lazy lookup for error messages which results in
shorter code and a standard structure.

I also added a simple spec.
2023-05-11 12:46:17 +01:00
Mohamed ABDELLANI
7eca32e84f prevent saving the enterprise fee when a per order calculator is selected along with 'Inherit from product' 2023-05-11 12:46:17 +01:00
Matt-Yorkley
11f45dc2f8 Give ContentConfig an updated_at attribute and a usable cache_key 2023-05-08 14:07:50 +01:00
Konrad
4b6ef7796e Merge pull request #10762 from mkllnk/report-encoding
Preserve encoding of stored reports
2023-05-03 17:08:44 +02:00