Matt-Yorkley
42d04b6581
Update OrderAvailableShippingMethods service
2023-08-14 21:02:47 +01:00
Matt-Yorkley
0c634cf04f
Update shipping_category permitted attributes
2023-08-14 21:02:47 +01:00
Gaetan Craig-Riou
2828bd098d
Refactor VoucherAdjustment service
...
We are taking advantage of having a FlatRate and a PercentageRate
model to simplify the code a little
2023-08-11 15:41:34 +10:00
Gaetan Craig-Riou
70bd714369
Finish calculation for percentage voucher
...
Add calculation when tax is not included in price
2023-08-11 14:51:36 +10:00
Gaetan Craig-Riou
cdb33aa0d0
Add calculation for percentage voucher
...
It include calculation for order with taxes included in the price
2023-08-11 14:30:48 +10:00
Konrad
c3414143e6
Merge pull request #11222 from Matt-Yorkley/checkout-controller
...
Reduce controller size
2023-08-10 23:28:57 +02:00
Rachel Arnould
2b108dfeee
Merge pull request #11116 from abdellani/fix-show-date-only-on-invoices-list
...
render date without time on invoices list
2023-08-09 14:33:40 +02:00
Maikel
b50fa216eb
Merge pull request #11117 from rioug/10857-voucher-error-moving-between-summary-and-cart-take2
...
[vouchers] error moving between summary and cart pages
2023-08-09 11:14:52 +10:00
Rachel Arnould
1b1279aa56
Merge pull request #11192 from abdellani/bulk-invoice-printing
...
fix Bulk invoice printing/sending
2023-08-04 12:02:43 +02:00
David Cook
42230c07b2
Merge pull request #11312 from macanudo527/fix_rubocop_5
...
Fix autocorrect Rails Cops
2023-08-04 11:13:52 +10:00
Matt-Yorkley
dd9bdd9c0e
Move address params handling into Checkout::Params
2023-08-04 08:43:15 +10:00
Matt-Yorkley
13a7c19a06
Extract checkout step(s) validation to a service
2023-08-04 08:43:15 +10:00
Mohamed ABDELLANI
1a8c0f18b7
order invoices by "created_at desc" on the default scope
2023-08-03 14:55:26 +01:00
Mohamed ABDELLANI
4f6ab69add
implement OrderInvoiceGenerator service
2023-08-03 14:52:45 +01:00
Filipe
c0a4bccb3e
Merge pull request #11156 from Matt-Yorkley/product-tax-category
...
[Product Refactor] Tax category
2023-08-03 10:29:40 +01:00
Neal Chambers
f47f6efcd0
Safely autocorrect Rails/DurationArithmetic
...
Inspecting 1481 files
...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................C.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................C.C.................................................................................................................................................................................................................................................................................C..............C..........................................................C...............................C....C..........CC................................................................
Offenses:
app/services/create_order_cycle.rb:41:24: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
orders_close_at: Time.zone.now + 1.month
^^^^^^^^^^^^^^^^^^^^^^^
spec/jobs/order_cycle_closing_job_spec.rb:7:74: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
create(:order_cycle, automatic_notifications: true, orders_close_at: Time.zone.now - 1.minute)
^^^^^^^^^^^^^^^^^^^^^^^^
spec/jobs/order_cycle_closing_job_spec.rb:10:74: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
create(:order_cycle, automatic_notifications: true, orders_close_at: Time.zone.now + 1.minute)
^^^^^^^^^^^^^^^^^^^^^^^^
spec/jobs/order_cycle_closing_job_spec.rb:13:75: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
create(:order_cycle, automatic_notifications: false, orders_close_at: Time.zone.now - 1.minute)
^^^^^^^^^^^^^^^^^^^^^^^^
spec/jobs/order_cycle_opened_job_spec.rb:7:42: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
create(:order_cycle, orders_open_at: Time.zone.now - 1.hour)
^^^^^^^^^^^^^^^^^^^^^^
spec/jobs/order_cycle_opened_job_spec.rb:13:42: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
create(:order_cycle, orders_open_at: Time.zone.now + 1.minute)
^^^^^^^^^^^^^^^^^^^^^^^^
spec/services/permissions/order_spec.rb:26:58: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
completed_at: Time.zone.now - 1.year)
^^^^^^^^^^^^^^^^^^^^^^
spec/services/terms_of_service_spec.rb:21:71: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
allow(customer).to receive(:terms_and_conditions_accepted_at) { Time.zone.now - 1.week }
^^^^^^^^^^^^^^^^^^^^^^
spec/services/terms_of_service_spec.rb:22:59: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
allow(TermsOfServiceFile).to receive(:updated_at) { Time.zone.now - 2.weeks }
^^^^^^^^^^^^^^^^^^^^^^^
spec/services/terms_of_service_spec.rb:36:71: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
allow(customer).to receive(:terms_and_conditions_accepted_at) { Time.zone.now - 1.week }
^^^^^^^^^^^^^^^^^^^^^^
spec/services/terms_of_service_spec.rb:38:45: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
ActiveStorage::Blob.new(created_at: Time.zone.now - 2.weeks)
^^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/bulk_order_management_spec.rb:647:57: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
completed_at: Time.zone.now + 1.week,
^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/bulk_order_management_spec.rb:652:57: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
completed_at: Time.zone.now + 2.weeks,
^^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/bulk_order_management_spec.rb:661:40: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
oc3.update!(orders_close_at: Time.zone.now + 2.weeks)
^^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/bulk_order_management_spec.rb:662:39: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
oc3.update!(orders_open_at: Time.zone.now + 1.week)
^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/order_cycles/list_spec.rb:128:18: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
oc_open_at = Time.zone.now - 2.weeks
^^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/order_cycles/list_spec.rb:129:19: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
oc_close_at = Time.zone.now + 2.weeks
^^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/orders_spec.rb:289:40: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
order2.update!(completed_at: Time.zone.now - 2.weeks)
^^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/orders_spec.rb:290:40: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
order3.update!(completed_at: Time.zone.now - 3.weeks)
^^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/orders_spec.rb:291:40: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
order4.update!(completed_at: Time.zone.now - 4.weeks)
^^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/orders_spec.rb:292:40: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
order5.update!(completed_at: Time.zone.now - 5.weeks)
^^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/reports/orders_and_fulfillment_spec.rb:113:31: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
let(:completed_at1) { Time.zone.now - 1500.hours } # 1500 hours in the past
^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/reports/orders_and_fulfillment_spec.rb:114:31: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
let(:completed_at2) { Time.zone.now - 1700.hours } # 1700 hours in the past
^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/reports/orders_and_fulfillment_spec.rb:115:33: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
let(:datetime_start1) { Time.zone.now - 1600.hours } # 1600 hours in the past
^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/reports/orders_and_fulfillment_spec.rb:116:33: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
let(:datetime_start2) { Time.zone.now - 1800.hours } # 1600 hours in the past
^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/reports/orders_and_fulfillment_spec.rb:117:30: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
let(:datetime_end) { Time.zone.now - 1400.hours } # 1400 hours in the past
^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/system/admin/reports/packing_report_spec.rb:13:26: C: [Corrected] Style/RedundantParentheses: Don't use parentheses around a method call.
let!(:open_datetime) { (1.month.ago).strftime("%Y-%m-%d 00:00") }
^^^^^^^^^^^^^
spec/system/admin/reports/packing_report_spec.rb:13:27: C: [Corrected] Rails/DurationArithmetic: Do not add or subtract duration.
let!(:open_datetime) { (Time.zone.now - 1.month).strftime("%Y-%m-%d 00:00") }
^^^^^^^^^^^^^^^^^^^^^^^
1481 files inspected, 28 offenses detected, 28 offenses corrected
2023-08-01 22:50:21 +09:00
Matt-Yorkley
363bbded43
Update permitted attributes
2023-07-31 09:23:20 +10:00
Matt-Yorkley
4934d09a4c
Update delegation and method chaining between product and tax_category
2023-07-31 09:23:20 +10:00
Neal Chambers
60cd84d565
Safely autocorrect Naming/BlockForwarding
...
Inspecting 1480 files
...................................................................................................................................................................C.......C..........C...............................................................................................................................................................................................................C...........................................................................................................C.........C...............................................................................................................................................................................................................................................................C........................................CC...C............................................................................................................................................................................................................................................................................................................................C.....................................................................................................................................................................................................C..............C.........C..CC.......C.....................................................................................................C...............
Offenses:
app/helpers/application_helper.rb:41:32: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def ng_form_for(name, *args, &block)
^^^^^^
app/helpers/application_helper.rb:44:75: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
form_for(name, *(args << options.merge(builder: AngularFormBuilder)), &block)
^^^^^^
app/helpers/application_helper.rb:49:37: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def method_missing(method, *args, &block)
^^^^^^
app/helpers/link_helper.rb:4:57: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def link_to_service(baseurl, name, html_options = {}, &block)
^^^^^^
app/helpers/link_helper.rb:8:51: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
link_to ext_url(baseurl, name), html_options, &block
^^^^^^
app/helpers/spree/admin/base_helper.rb:6:56: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def field_container(model, method, options = {}, &block)
^^^^^^
app/helpers/spree/admin/base_helper.rb:13:29: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
capture(&block),
^^^^^^
app/reflexes/application_reflex.rb:29:19: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def with_locale(&block)
^^^^^^
app/reflexes/application_reflex.rb:30:43: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
I18n.with_locale(current_user.locale, &block)
^^^^^^
app/services/cache_service.rb:8:43: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def self.cache(cache_key, options = {}, &block)
^^^^^^
app/services/cache_service.rb:9:48: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
Rails.cache.fetch cache_key.to_s, options, &block
^^^^^^
app/services/cache_service.rb:14:58: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def self.cached_data_by_class(cache_key, cached_class, &block)
^^^^^^
app/services/cache_service.rb:16:23: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
&block
^^^^^^
app/services/cache_service.rb:25:34: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def self.home_stats(statistic, &block)
^^^^^^
app/services/cache_service.rb:28:47: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
race_condition_ttl: 10, &block)
^^^^^^
app/services/current_order_locker.rb:12:31: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def self.around(controller, &block)
^^^^^^
app/services/current_order_locker.rb:13:55: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
lock_order_and_variants(controller.current_order, &block)
^^^^^^
lib/reporting/reports/enterprise_fee_summary/scope.rb:392:28: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def chain_to_scope(&block)
^^^^^^
lib/reporting/reports/enterprise_fee_summary/scope.rb:393:41: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
@scope = @scope.instance_eval(&block)
^^^^^^
lib/spree/core/controller_helpers/respond_with.rb:7:34: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def respond_with(*resources, &block)
^^^^^^
lib/spree/core/controller_helpers/respond_with.rb:13:64: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
return unless (collector = retrieve_collector_from_mimes(&block))
^^^^^^
lib/spree/core/delegate_belongs_to.rb:80:39: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def class_def(name, method = nil, &blk)
^^^^
lib/spree/core/delegate_belongs_to.rb:81:54: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
class_eval { method.nil? ? define_method(name, &blk) : define_method(name, method) }
^^^^
lib/spree/core/environment_extension.rb:22:31: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def create_method(name, &block)
^^^^^^
lib/spree/core/environment_extension.rb:23:51: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
self.class.__send__(:define_method, name, &block)
^^^^^^
spec/models/enterprise_caching_spec.rb:144:13: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def later(&block)
^^^^^^
spec/models/enterprise_caching_spec.rb:145:36: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
Timecop.travel(1.day.from_now, &block)
^^^^^^
spec/support/embedded_pages_helper.rb:5:26: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def on_embedded_page(&block)
^^^^^^
spec/support/embedded_pages_helper.rb:6:28: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
within_frame :frame, &block
^^^^^^
spec/support/preferences_helper.rb:11:31: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def reset_spree_preferences(&config_block)
^^^^^^^^^^^^^
spec/support/preferences_helper.rb:16:33: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
configure_spree_preferences(&config_block) if block_given?
^^^^^^^^^^^^^
spec/support/request/shop_workflow.rb:87:37: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def within_variant(variant = nil, &block)
^^^^^^
spec/support/request/shop_workflow.rb:90:22: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
within(selector, &block)
^^^^^^
spec/support/request/ui_component_helper.rb:4:23: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def browse_as_small(&block)
^^^^^^
spec/support/request/ui_component_helper.rb:5:39: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
browse_with_window_size(640, 480, &block)
^^^^^^
spec/support/request/ui_component_helper.rb:8:24: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def browse_as_medium(&block)
^^^^^^
spec/support/request/ui_component_helper.rb:9:40: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
browse_with_window_size(1024, 768, &block)
^^^^^^
spec/support/request/web_helper.rb:52:23: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def within_row(num, &block)
^^^^^^
spec/support/request/web_helper.rb:53:54: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
within("table.index tbody tr:nth-child(#{num})", &block)
^^^^^^
spec/swagger_helper.rb:77:19: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def param(args, &block)
^^^^^^
spec/swagger_helper.rb:78:45: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
public_send(:let, args) { instance_eval(&block) }
^^^^^^
spec/system/support/capybara_setup.rb:20:27: C: [Corrected] Naming/BlockForwarding: Use anonymous block forwarding.
def using_session(name, &block)
^^^^^^
1480 files inspected, 42 offenses detected, 42 offenses corrected
2023-07-30 21:29:19 +09:00
Gaetan Craig-Riou
a5b2bc6293
Per review, Refactor VoucherAdjustmentsService
...
Change #calculate to #update and clean up internal code
2023-07-18 15:16:21 +10:00
Gaetan Craig-Riou
a584f9aaec
Refactor VoucherAdjustmentsService
...
It's more inline with existing coding style
2023-07-18 14:39:01 +10:00
Gaetan Craig-Riou
3d9542fec2
Per review, rename amount to adjustment_amount
...
It was confusing as I was re assigning a variable given as a parameter
2023-07-14 14:47:39 +10:00
Gaetan Craig-Riou
87790b29ae
Fix VoucherAdjustmentsService.calculate so we can call it mutiple time
...
It now uses `order.pre_discount_total` to make any calculation, that
means you can call it multiple time and you will still get the same
adjustment amount, included_tax and tax adjustment when needed. This
is assuming nothing changed on the order.
2023-07-14 14:47:03 +10:00
Filipe
448d5ea017
Merge pull request #11135 from Matt-Yorkley/vouchers
...
Vouchers part 2
2023-07-13 12:50:32 +01:00
Matt-Yorkley
42a3087cdb
Remove :available_on attribute from Product class
2023-07-06 14:36:35 +01:00
Matt-Yorkley
47b5a3fb1d
Don't apply tax calculations if there's no tax
2023-07-04 13:13:05 +01:00
Matt-Yorkley
fefa9288a4
Remove :permalink attribute from Product
2023-06-30 11:37:57 +01:00
Matt-Yorkley
a0a1f8f910
Merge pull request #11002 from openfoodfoundation/voucher-prep
...
Vouchers part 1
2023-06-28 11:30:12 +01:00
Maikel
014fb69d4b
Merge pull request #10964 from macanudo527/fix_linelength_bundle1
...
Fix Layout/LineLength - Bundle 1
2023-06-26 12:10:39 +10:00
Maikel
e065910d2d
Merge pull request #10939 from Matt-Yorkley/master-variants
...
Remove master variants
2023-06-23 13:42:58 +10:00
Neal Chambers
1e4034534c
Fix Layout/LineLength
2023-06-23 09:08:04 +09:00
Mohamed ABDELLANI
639567e903
replace attr with attr_reader
2023-06-18 21:03:13 +02:00
Mohamed ABDELLANI
73cdcca022
fix linter issues
2023-06-18 21:03:13 +02:00
Matt-Yorkley
4eb05a1d73
Reduce public interface of OrderInvoiceComparator
2023-06-18 21:03:13 +02:00
Matt-Yorkley
3946e7a6f5
Memoize presenters in OrderInvoiceComparator
...
This is now twice as fast and triggers half the number of database queries if both comparison methods get called
2023-06-18 21:03:13 +02:00
Matt-Yorkley
352ad20681
Fix display_checkout_taxes_hash in invoice_table4 template
2023-06-18 21:03:13 +02:00
Mohamed ABDELLANI
0ed7599267
extract methods related to invoices from the order model to the OrderInvoiceComparator
2023-06-18 21:03:13 +02:00
Mohamed ABDELLANI
61d58df56f
fix linter issues
2023-06-18 21:03:13 +02:00
Mohamed ABDELLANI
d86173c509
add feature toggle
...
seperate the invoice templates that rely on presenters from the old ones.
2023-06-18 21:03:13 +02:00
Mohamed ABDELLANI
fa14dc370b
implement the invoice data generator
2023-06-18 21:03:13 +02:00
Mohamed ABDELLANI
d9efd10ac0
update attributes relevant for the comparaison
2023-06-18 21:03:13 +02:00
Mohamed ABDELLANI
0fbf88190e
Generate invoice model
...
There are three main components:
1. The invoice model
2. order serializers: serialize the order for the invoice
3. data presenters: the object that will be use to access the order's serialize data
2023-06-18 21:03:13 +02:00
Matt-Yorkley
1daab8994d
Remove is_master and not_master scopes
2023-06-16 21:23:44 +01:00
Matt-Yorkley
618900767f
Fix flaky spec: use milliseconds in cache service and remove sleep
2023-06-16 21:23:44 +01:00
Matt-Yorkley
3ef7d2c9ff
Remove master variant from product
2023-06-16 21:23:44 +01:00
Matt-Yorkley
7dc1091bc2
Migrate product image from master variant to product
2023-06-16 21:23:44 +01:00
Matt-Yorkley
6fa381197a
Don't tax fees before payment state
2023-06-14 10:19:30 +01:00
Matt-Yorkley
a0f23fc510
Extract before_payment_state? method
2023-06-14 10:19:30 +01:00
Mohamed ABDELLANI
c2aaf88e98
remove checkout controller
2023-06-13 14:58:16 +01:00
Matt-Yorkley
abd55b2104
Move order to completed whether it's current state is payment or confirmation
2023-06-13 10:14:09 +01:00