Gaetan Craig-Riou
2a0caca570
Refactor EnterpriseFee.clear_all_adjustments
...
Renamed to clear_order_adjustments, it doesn't clear line item
adjustment
2025-04-01 13:46:34 +11:00
Gaetan Craig-Riou
11e08dcc26
Revert "Update line items enterprise fee instead of deleting and recreating "
2025-03-19 09:40:02 +11:00
Gaetan Craig-Riou
e87477b679
Refactor EnterpriseFee.clear_all_adjustments
...
Renamed to clear_order_adjustments, it doesn't clear line item
adjustment
2025-02-10 16:28:19 +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
cyrillefr
9ae064a24f
Fix RedundantPresenceValidationOnBelongs on some files
...
- presence: true is redundant since Rails 5.0 BUT applies
with new default config of
belongs_to_required_by_default to true
Lots of files with belongs_to_required_by_default = false
(backward compatibility)
So: deleting this setting implies to adding optional: true
- added 'NOT NULL' constraints so model constraints match
with contraints on DB tables.
- updated the todo
2024-04-22 17:36:47 +02:00
cyrillefr
404fcf1f72
Fix FixRailsWhereEquals
...
- fixes offenses caused by RuboCop::Cop::Rails::WhereEquals cop
2024-04-09 10:44:02 +02:00
Neal Chambers
06e217c527
Safely autocorrect Rails/WhereNot
...
Inspecting 1483 files
........................................................................................................................C..................................................................................................................C...........CC.C..........................................C......C..........C.........................C......................CC..........C........................................................................................................................C.......................................................................................................C........................................................C...........................................................................................................................................C......................................C.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Offenses:
app/controllers/spree/admin/products_controller.rb:183:11: C: [Corrected] Rails/WhereNot: Use where.not(spree_variants: { import_date: nil }) instead of manually constructing negated SQL in where.
where('spree_variants.import_date IS NOT NULL').
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/concerns/permalink_generator.rb:37:26: C: [Corrected] Rails/WhereNot: Use where.not(id: id) instead of manually constructing negated SQL in where.
scope_with_deleted.where('id != ?', id)
^^^^^^^^^^^^^^^^^^^^
app/models/concerns/permalink_generator.rb:37:40: C: [Corrected] Style/HashSyntax: Omit the hash value.
scope_with_deleted.where.not(id: id)
^^
app/models/enterprise.rb:152:7: C: [Corrected] Rails/WhereNot: Use where.not(enterprises: { id: ready_enterprises }) instead of manually constructing negated SQL in where.
where("enterprises.id NOT IN (?)", ready_enterprises)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise.rb:158:31: C: [Corrected] Rails/WhereNot: Use where.not(sells: 'none') instead of manually constructing negated SQL in where.
scope :is_distributor, -> { where('sells != ?', 'none') }
^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise.rb:479:17: C: [Corrected] Rails/WhereNot: Use where.not(id: id) instead of manually constructing negated SQL in where.
dups = dups.where('id != ?', id) unless new_record?
^^^^^^^^^^^^^^^^^^^^
app/models/enterprise.rb:534:43: C: [Corrected] Rails/WhereNot: Use where.not(enterprises: { id: self }) instead of manually constructing negated SQL in where.
enterprises = owner.owned_enterprises.where('enterprises.id != ?', self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise.rb:583:7: C: [Corrected] Rails/WhereNot: Use where.not(enterprises: { id: id }) instead of manually constructing negated SQL in where.
where('enterprises.id != ?', id).
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise_fee.rb:40:24: C: [Corrected] Rails/WhereNot: Use where.not(spree_calculators: { type: PER_ORDER_CALCULATORS }) instead of manually constructing negated SQL in where.
joins(:calculator).where('spree_calculators.type NOT IN (?)', PER_ORDER_CALCULATORS)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise_relationship.rb:78:19: C: [Corrected] Rails/WhereNot: Use where.not(name: perms) instead of manually constructing negated SQL in where.
permissions.where('name NOT IN (?)', perms).destroy_all
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/product_import/inventory_reset_strategy.rb:27:16: C: [Corrected] Rails/WhereNot: Use where.not(id: excluded_items_ids) instead of manually constructing negated SQL in where.
relation.where('id NOT IN (?)', excluded_items_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/proxy_order.rb:19:25: C: [Corrected] Rails/WhereNot: Use where.not(proxy_orders: { canceled_at: nil }) instead of manually constructing negated SQL in where.
scope :canceled, -> { where('proxy_orders.canceled_at IS NOT NULL') }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/credit_card.rb:26:39: C: [Corrected] Rails/WhereNot: Use where.not(gateway_customer_profile_id: nil) instead of manually constructing negated SQL in where.
scope :with_payment_profile, -> { where('gateway_customer_profile_id IS NOT NULL') }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/product.rb:166:9: C: [Corrected] Rails/WhereNot: Use where.not(order_cycles: { id: nil }) instead of manually constructing negated SQL in where.
where('order_cycles.id IS NOT NULL')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/variant.rb:94:30: C: [Corrected] Rails/WhereNot: Use where.not(deleted_at: nil) instead of manually constructing negated SQL in where.
scope :deleted, lambda { where('deleted_at IS NOT NULL') }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/variant.rb:165:43: C: [Corrected] Rails/WhereNot: Use where.not(spree_prices: { amount: nil }) instead of manually constructing negated SQL in where.
where('spree_prices.amount IS NOT NULL').
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/zone.rb:141:19: C: [Corrected] Rails/WhereNot: Use where.not(id: id) instead of manually constructing negated SQL in where.
Spree::Zone.where('id != ?', id).update_all(default_tax: false) if default_tax
^^^^^^^^^^^^^^^^^^^^
app/models/spree/zone.rb:141:33: C: [Corrected] Style/HashSyntax: Omit the hash value.
Spree::Zone.where.not(id: id).update_all(default_tax: false) if default_tax
^^
app/models/variant_override.rb:32:7: C: [Corrected] Rails/WhereNot: Use where.not(variant_overrides: { import_date: nil }) instead of manually constructing negated SQL in where.
where('variant_overrides.import_date IS NOT NULL').
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/services/cap_quantity.rb:45:22: C: [Corrected] Rails/WhereNot: Use where.not(variant_id: available_variants_for.select(&:id)) instead of manually constructing negated SQL in where.
order.line_items.where('variant_id NOT IN (?)', available_variants_for.select(&:id))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
engines/catalog/app/services/catalog/product_import/products_reset_strategy.rb:32:18: C: [Corrected] Rails/WhereNot: Use where.not(spree_variants: { id: excluded_items_ids }) instead of manually constructing negated SQL in where.
relation.where('spree_variants.id NOT IN (?)', excluded_items_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
engines/order_management/app/services/order_management/subscriptions/proxy_order_syncer.rb:78:18: C: [Corrected] Rails/WhereNot: Use where.not(order_cycle_id: order_cycle_ids) instead of manually constructing negated SQL in where.
orphaned.where('order_cycle_id NOT IN (?)', order_cycle_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/reporting/reports/users_and_enterprises/base.rb:27:14: C: [Corrected] Rails/WhereNot: Use where.not(enterprises: { id: nil }) instead of manually constructing negated SQL in where.
.where("enterprises.id IS NOT NULL")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/reporting/reports/users_and_enterprises/base.rb:39:14: C: [Corrected] Rails/WhereNot: Use where.not(enterprise_id: nil) instead of manually constructing negated SQL in where.
.where("enterprise_id IS NOT NULL")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/reporting/reports/users_and_enterprises/base.rb:40:14: C: [Corrected] Rails/WhereNot: Use where.not(user_id: nil) instead of manually constructing negated SQL in where.
.where("user_id IS NOT NULL")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/tasks/data/anonymize_data.rake:50:16: C: [Corrected] Rails/WhereNot: Use where.not(user_id: nil) instead of manually constructing negated SQL in where.
Customer.where("user_id IS NOT NULL")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1483 files inspected, 26 offenses detected, 26 offenses corrected
2023-08-20 12:33:43 +09:00
Maikel Linke
4a13576f78
Remove now superfluous belongs_to default declaration
2023-08-11 10:14:47 +10:00
Maikel Linke
13b2f37884
Require EnterpriseFee.belongs_to by default
2023-08-11 10:13:09 +10: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
Jean-Baptiste Bellet
434f9600b7
Enterprise fee must be linked with an enterprise
...
Add 2 validation / errorproof options:
- Add rails validation on `enterprise_id` on enterprise_fee model
- Do not add a blank option on the select: ie. user can select a blank enterprise in the form
Update tests as well
2021-07-27 15:39:40 +02:00
Matt-Yorkley
2d69810c5d
Convert CalculatedAdjustments into a proper Concern and remove class_eval
2021-07-24 21:28:13 +01:00
Luis Ramos
e52937c113
Use rubocop auto correct to add frozen string literal to all files
...
This is an unsafe auto corection, we will need to trust our build here
2021-06-17 23:07:26 +01:00
Luis Ramos
23627c5453
Run rubocop -a (safe corrections) removing all exceptions so all possible fixes are applied
...
9290 issues fixed
2021-06-17 22:19:26 +01:00
Maikel Linke
1364b878fe
Add ApplicationRecord for customisations
...
Rails 5 introduced this new class to confine application-specific monkey
patches to our models only, and not leak into other libraries using
ActiveRecord::Base.
https://bigbinary.com/blog/application-record-in-rails-5
2021-04-15 15:59:03 +10:00
Matt-Yorkley
8d4733b3d5
Update EnterpriseFee#clear_all_adjustments
2021-03-18 13:18:20 +00:00
Matt-Yorkley
3ecdfca9cf
Rename fee adjustment clear-all method
2021-01-29 21:52:28 +00:00
Matt-Yorkley
c4a8a38c8d
Soft-delete enterprise fees
...
These objects can hold critical information related to adjustments and tax categories. If they are hard-deleted we lose vital data that's needed by associated records.
2021-01-19 16:46:14 +00:00
Luis Ramos
0b79e7c48c
Fix rubucop issue in enterprise_fee model
2020-07-07 17:26:24 +01:00
Luis Ramos
5e8438c446
Move all calculators outside the spree namespace
2020-07-07 17:26:23 +01:00
Luis Ramos
32a4355f09
Merge branch 'master' into 3-0-stable-mar6
2020-03-12 16:54:09 +00:00
Matt-Yorkley
3896644a04
Remove attr_accessible declarations
...
Needed for using Strong Parameters in Rails 4
2020-02-22 14:03:16 +01:00
Matt-Yorkley
98fdbb8621
Update deprecated #scoped calls
...
Model#scoped is now deprecated. Model#where(nil) in Rails 4 returns the same result as Model#scoped in Rails 3
2020-02-22 11:06:51 +00:00
Luis Ramos
1eba17f048
Make select column explicit to avoid too many columns sql error
2020-02-18 18:32:52 +00:00
Matt-Yorkley
ab330e882e
Remove product cache
2019-10-18 21:15:11 +01:00
luisramos0
86b0d71c7e
Result of rubocop auto-correct and rebuilding rubocop_manual_todo
2019-05-28 12:57:29 +01:00
luisramos0
4768ca27c7
Remove all dependencies to product distributions including the validation to avoid deleting fees with product distributions
2019-03-13 11:50:35 +00:00
Hugo Daniel
a162a2c50b
Move product distributions check as a before_destroy in EnterpriseFee model
2018-11-15 14:05:15 +01:00
Hugo Daniel
28009afbea
Calculate price sack fees and tests
2018-04-04 11:25:25 +10:00
Rohan Mitchell
858576d870
CalculatedAdjustments requires include first
2017-09-08 23:55:48 +10:00
Rohan Mitchell
38da4c8e12
Adjustments now have state instead of locked/unlocked
2017-09-08 23:55:48 +10:00
Rohan Mitchell
a0b740f52d
Generalise fix for missing EnterpriseFee::Calculator to any use of calculated_adjustments
2016-11-04 09:39:17 +11:00
Rohan Mitchell
0d4c4f20df
Fix missing EnterpriseFee::Calculator error
...
Conflicts:
app/models/enterprise_fee.rb
2016-11-04 09:39:17 +11:00
Rohan Mitchell
422061f137
Merge branch 'master' into products-caching
...
Conflicts:
app/controllers/shop_controller.rb
app/models/enterprise_fee.rb
app/models/order_cycle.rb
app/models/variant_override.rb
db/schema.rb
lib/open_food_network/products_renderer.rb
spec/lib/open_food_network/products_renderer_spec.rb
2016-03-03 09:42:52 +11:00
Rob Harrington
59745fbc73
EnterpriseFees can inherit tax_category from product
2016-03-02 11:56:46 +11:00
Rob Harrington
caa8818f02
Adding option to 'Inherit From Product' for enterprise_fee tax categories
2016-03-02 11:56:46 +11:00
Rohan Mitchell
8bd5a36aaf
Remove enterprise fee destruction cache callback - responsibility to be handled by dependent models
2016-02-24 15:05:03 +11:00
Rohan Mitchell
540687515e
Reify coordinator_fees HABTM join table as CoordinatorFee model using HMT
2016-02-24 15:05:03 +11:00
Rohan Mitchell
f756749e02
Fix specs
2016-02-24 15:05:02 +11:00
Rohan Mitchell
0c65d1ddd8
Trigger products cache refresh when enterprise fee changed or destroyed
2016-02-24 15:05:02 +11:00
Rob Harrington
7eb735f87e
Adding for_enterprises scope on enterprise fee
2015-04-06 10:24:40 +10:00
Rohan Mitchell
53fa71d1f3
Admin can set enterprise fee's tax category
2015-03-05 10:44:25 +11:00
Rohan Mitchell
61c08997a1
EnterpriseFee has a TaxCategory
2015-03-05 10:44:22 +11:00
Rohan Mitchell
50b8eaecab
Add fundraising fees
2014-08-13 15:07:32 +10:00
Rohan Mitchell
4cbe434573
Remove trailing relations on destruction for EnterpriseFee and Variant
2014-04-24 13:20:15 +10:00
Rohan Mitchell
b720a1d8f2
EnterpriseFee.clear_all_adjustments_on_order clears adjustments from per-order fees
2014-02-26 14:33:28 +11:00
Rohan Mitchell
5057e236a9
Find enterprise fees with per-order calculators
2014-02-26 13:48:51 +11:00
Rohan Mitchell
febbe087e9
Find EnterpriseFees with per-item calculators
2014-02-26 10:39:39 +11:00
Rohan Mitchell
31a078a53c
Enterprise manager can access enterprise fees for enterprises they manage - fixes fees on order cycles interface
2013-08-20 16:26:46 +10:00