Commit Graph

2311 Commits

Author SHA1 Message Date
Mohamed ABDELLANI
c921250d68 implement Spree::Order#invoiceable?
This will be used to filter the orders when running bulk print
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
Konrad
44d25dbb6a Merge pull request #11299 from cillian/order-name-sorting
Sort orders by last name, then first name i.e. the same way bulk order management works
2023-08-02 11:30:25 +02:00
Matt-Yorkley
91fc4b51b4 Rescue ImageMagick errors 2023-07-31 17:21:49 +01:00
Matt-Yorkley
a84f9ebd2e Allow passing tax_category to new variant when creating a new product 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
Matt-Yorkley
d33e780411 Move tax_category association from product to variant 2023-07-31 09:23:19 +10:00
Neal Chambers
2a76b1972f Safely autocorrect Lint/SafeNavigationChain
Inspecting 1480 files
........................................................................................................................................................................................................................................................................................................................................W............................W..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Offenses:

app/models/spree/line_item.rb:283:55: W: [Corrected] Lint/SafeNavigationChain: Do not chain ordinary method call after safe navigation operator.
        self.final_weight_volume = variant&.unit_value * quantity
                                                      ^^^^^^^^^^^
app/models/spree/line_item.rb:283:57: C: [Corrected] Layout/SpaceAroundMethodCallOperator: Avoid using spaces around a method call operator.
        self.final_weight_volume = variant&.unit_value&. * quantity
                                                        ^
app/models/spree/stock/availability_validator.rb:31:77: W: [Corrected] Lint/SafeNavigationChain: Do not chain ordinary method call after safe navigation operator.
        return line_item.order.shipments.first if line_item.order&.shipments.any?
                                                                            ^^^^^

1480 files inspected, 3 offenses detected, 3 offenses corrected
2023-07-30 21:29:19 +09:00
Neal Chambers
e9f448fad9 Safely autocorrect Lint/AmbiguousOperatorPrecedence
Inspecting 1480 files
...................................................................................................................................................................................................................................W..........................W........................................................W................W..............W................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Offenses:

app/models/calculator/flexi_rate.rb:38:7: W: [Corrected] Lint/AmbiguousOperatorPrecedence: Wrap expressions with varying precedence with parentheses to avoid ambiguity.
      count * preferred_additional_item.to_f + preferred_first_item.to_f
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise.rb:362:12: W: [Corrected] Lint/AmbiguousOperatorPrecedence: Wrap expressions with varying precedence with parentheses to avoid ambiguity.
    cat << "sells_" + sells
           ^^^^^^^^^^^^^^^^
app/models/enterprise.rb:496:21: W: [Corrected] Lint/AmbiguousOperatorPrecedence: Wrap expressions with varying precedence with parentheses to avoid ambiguity.
    phone_number && "https://wa.me/" + phone_number.tr('+ ', '')
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/ability.rb:27:33: W: [Corrected] Lint/AmbiguousOperatorPrecedence: Wrap expressions with varying precedence with parentheses to avoid ambiguity.
          order.user == user || order.token && token == order.token
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/ability.rb:30:33: W: [Corrected] Lint/AmbiguousOperatorPrecedence: Wrap expressions with varying precedence with parentheses to avoid ambiguity.
          order.user == user || order.token && token == order.token
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/line_item.rb:205:16: W: [Corrected] Lint/AmbiguousOperatorPrecedence: Wrap expressions with varying precedence with parentheses to avoid ambiguity.
      (price + fees / quantity).round(2)
               ^^^^^^^^^^^^^^^
app/models/spree/preferences/store.rb:28:11: W: [Corrected] Lint/AmbiguousOperatorPrecedence: Wrap expressions with varying precedence with parentheses to avoid ambiguity.
          should_persist? && Spree::Preference.where(key: key).exists?
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

1480 files inspected, 7 offenses detected, 7 offenses corrected
2023-07-30 21:29:19 +09:00
Cillian O'Ruanaidh
276b94de5b Sort orders by last name, then first name i.e. the same way bulk order management works 2023-07-28 14:20:29 +01:00
jibees
605cb730f7 Merge pull request #11163 from jibees/productsV3-searching-filtering-pagination
🚧 Products v3: viewing, searching,  filtering & pagination
2023-07-25 15:22:42 +02:00
Jean-Baptiste Bellet
2a81a9acfb Add ability for non super-admin user to see products_v3 page 2023-07-25 09:20:25 +02:00
David Cook
6fa9165cc2 Safely autocorrect Layout/EmptyLines
Inspecting 1478 files
..............................................................................................................................................................................................................................................................................................................................................C.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Offenses:

app/models/spree/payment.rb:100:1: C: [Corrected] Layout/EmptyLines: Extra blank line detected.

1478 files inspected, 1 offense detected, 1 offense corrected
2023-07-20 13:58:00 +10:00
Jean-Baptiste Bellet
3fab9714f5 Use a constant as the search_key 2023-07-19 14:58:40 +02:00
Filipe
15282f9738 Merge pull request #11115 from abdellani/fix-enterprise-users-should-have-access-to-invoices
authorize enterprise users to access invoices page
2023-07-18 16:42:00 +01:00
Filipe
448d5ea017 Merge pull request #11135 from Matt-Yorkley/vouchers
Vouchers part 2
2023-07-13 12:50:32 +01:00
Mohamed ABDELLANI
f68064480a authorize distributor manager to generate invoices 2023-07-06 17:36:13 +01:00
Mohamed ABDELLANI
3a9a023dea authorize enterprise users to access invoices page 2023-07-06 17:36:13 +01:00
Matt-Yorkley
42a3087cdb Remove :available_on attribute from Product class 2023-07-06 14:36:35 +01:00
Matt-Yorkley
652beac73f Drop valid? check from zero_priced_order? method 2023-07-05 15:31:05 +01:00
Matt-Yorkley
671dfc7082 Don't flush errors when checking zero priced order validity 2023-07-04 14:42:31 +01:00
Matt-Yorkley
bd29a9acde Introduce "zero priced orders" to checkout UI and order state flow 2023-07-04 13:13:05 +01:00
Matt-Yorkley
3d44f4bc98 Introduce "zero priced order" concept with no required payment
This applies to cases where an order contains items with zero price or where applied vouchers have reduced the order's total to zero.
2023-07-03 11:03:05 +01:00
Matt-Yorkley
fefa9288a4 Remove :permalink attribute from Product 2023-06-30 11:37:57 +01:00
Filipe
da226ea021 Merge pull request #11109 from mkllnk/image-urls
Gracefully deal with missing S3 config
2023-06-29 12:50:36 +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
Maikel Linke
33d212d274 Gracefully deal with missing S3 config
I could have split this into several commits:

* DRY direct linking to images.
* Check S3 config before direct linking.
* Just check if service is public instead of relying on name.

Developers may copy a staging or production database or experiment with
S3 storage. But when the S3 config is missing then calling `service`
raises an ArgumentError due to a missing name.

Now we only try to call `service` if the S3 config is present.
2023-06-23 12:41:36 +10:00
David Cook
3bff7a9f13 Fix query
With deep nesting syntax.

I chose the longer alias 'left_outer_joins' because it's more explicit, and matches the use up on line 121.
2023-06-23 09:11:03 +09:00
Neal Chambers
1e4034534c Fix Layout/LineLength 2023-06-23 09:08:04 +09:00
Matt-Yorkley
776eac9f52 Add image error Bugsnag notifications 2023-06-20 14:14:19 +01:00
Matt-Yorkley
c6ec13443e Drop next_invoice_number method from Spree::Order 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
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
ae24b2d688 Update ScopeVariantsForSearch logic to match both product and variant SKUs 2023-06-16 21:26:28 +01:00
Matt-Yorkley
733dd3c428 Disable variant is_master column 2023-06-16 21:23:44 +01:00
Matt-Yorkley
1daab8994d Remove is_master and not_master scopes 2023-06-16 21:23:44 +01:00
Matt-Yorkley
85059bfb26 Remove master variant validation conditionals 2023-06-16 21:23:44 +01:00
Matt-Yorkley
1922598d2d Reorganise associations, validations, scopes and callbacks for clarity 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
d8649fc9fb Migrate master variant :sku to product 2023-06-16 21:21:40 +01:00
Matt-Yorkley
6b9b5ea347 Stop storing unit_value and unit_description on master variant 2023-06-16 21:21:40 +01:00
Matt-Yorkley
8c0b8dad85 Stop using master variant for storing :display_as value 2023-06-16 21:21:40 +01:00
Matt-Yorkley
1b06c20197 Stop using master variant as a potential store for prices 2023-06-16 21:21:40 +01:00
Matt-Yorkley
d4188da7c1 Simplify product images delegation mess 2023-06-16 21:21:40 +01:00
Matt-Yorkley
42a5a48816 Remove dead code 2023-06-16 21:21:40 +01:00