Commit Graph

276 Commits

Author SHA1 Message Date
Jean-Baptiste Bellet
ddb63dff8a Add name of the customers into subscriptions table
- Thus, we can filter subscriptions by customer email
2021-04-20 16:09:48 +02:00
Pau Perez
5bca7d1f8f Remove the old balance's code branch
This keeps the `OrderBalance` abstraction but removes the old code now
that the feature is enabled for all users in all instances and there are
no bugs reported. It's become dead code.
2021-04-19 11:52:41 +02:00
Matt-Yorkley
80d43c714d Remove TagRule::DiscountOrder
This class was removed from the UI in 2016 and hasn't been used since...
2021-04-08 12:37:17 +01:00
Pau Perez
20a7f2f24e Eager load payment and subs. order associations
This removes the N+1 queries caused by
`Api::Admin::OrderSerialier#ready_to_capture` when used from
`Api::OrdersController#index`. While it's fine for the single-order
controller actions, it's not for this one that deals with a collection
of orders.

Fortunately, `SearchOrders` is used only in this controller action so we
can put the `includes` calls there, otherwise, we would need to refactor
it a bit to pass in a context-specific AR relation.
2021-02-23 10:26:12 -08:00
Andy Brett
d62a984939 make orders not capturable if they have a payment pending authorization 2021-02-23 10:26:04 -08:00
Andy Brett
18dcbbd892 Merge pull request #6613 from Matt-Yorkley/variant-override-serialization
Don't serialize all variant override objects where they are not needed
2021-01-14 10:59:11 -08:00
Pau Perez
acd4dddf1b Doc how balance_value works
[skip ci]
2021-01-13 12:50:41 +01:00
Pau Perez
398467e7ed Hide new balance impl. under feature toggle
This makes it possible to deploy it without releasing it to users since
the toggle is not enabled for anyone.

It aims to make the balance calculation consistent across pages.
2021-01-11 15:50:19 +01:00
Pau Perez
96a91969c9 Extract balance-specific serializer
So we only show the customer balance where really needed. Aggregating
the balance can be costly. Also, we avoid defensive coding.
2021-01-11 15:50:19 +01:00
Pau Perez
d62ab06504 Refactor DB query to aggregate customer balance
It's simpler and many orders of magnitude more efficient to ask the DB
to aggregate the customer balance based on their orders. It removes
a nasty N+1.

The resulting SQL query is:

```sql
SELECT customers.*, SUM(spree_orders.total - spree_orders.payment_total) AS balance
FROM "customers"
INNER JOIN "spree_orders"
    ON "spree_orders"."customer_id" = "customers"."id"
WHERE "customers"."enterprise_id" = 1
    AND (completed_at IS NOT NULL)
    AND (state != 'canceled')
GROUP BY customers.id
ORDER BY email;
```
2021-01-11 15:50:19 +01:00
Matt-Yorkley
bd4560cff6 Don't serialize all variant override objects where they are not needed
This is only needed in one place, and only as a count, and can cause huge amounts of superfluous data to be fetched and serialized, for example in the admin products index page (where variant override data is not used at all).
2021-01-06 16:04:47 +00:00
efgalvao
307b1ca9f9 Fixes Issue#6249 2020-11-09 14:06:37 -03:00
Luis Ramos
7cc7c62232 Fix long lines 2020-10-30 16:14:39 +00:00
Luis Ramos
b6dc46a911 Fix rubocop issue by nesting module and class declarations
No file contents changed
2020-10-30 16:14:34 +00:00
Luis Ramos
9f17e4fd8f Add upload timestamp to TCs upload form in enterprise business details 2020-10-30 15:09:13 +00:00
Luis Ramos
4a2684e3d9 Fix rubocop issues 2020-10-29 13:38:36 +00:00
Luis Ramos
e860e2ca57 Add label to customer balance so it's clear to the manager what's the balance status: credit owed or balance due 2020-10-29 13:38:36 +00:00
Luis Ramos
da69dca471 Make customer balance serialize with the currency 2020-10-29 13:38:36 +00:00
Luis Ramos
e4f3aae7c0 Add customer balance to customer list 2020-10-29 13:38:36 +00:00
Luis Ramos
66587ccc00 Allow user to remove terms and conditions file 2020-08-31 17:40:34 +01:00
Luis Ramos
1a734aacf8 Allow user to upload terms and conditions PDF file to an enterprise 2020-08-31 17:40:34 +01:00
Pau Pérez Fabregat
2fa8cd54fd Merge pull request #5769 from Matt-Yorkley/customer-names
Customer names in reports
2020-08-27 15:39:47 +02:00
Matt-Yorkley
23bb72faa6 Add Enterprise shop preference to allow customer names in reports 2020-08-14 20:48:32 +01:00
Luis Ramos
2aa6c70dc6 Remove select from relation
This relation is only used above for a call to empty? so we don't need to worry about the select part of the query, specially not introducing an expensive DISTINCT
2020-07-31 09:26:04 +01:00
Luis Ramos
aadbc9ed5d Remove unnecessary order statement, the relation will only be used for counting products 2020-07-21 19:44:43 +01:00
Luis Ramos
9b5875a7d1 Move select out of scope visible_for because it is breaking exchange_product queries and it's just not needed there. The only other use of this product's scope visible_for is the enterprise serializer so we add the select to it. 2020-07-21 19:44:43 +01:00
Luis Ramos
658c77f3f5 Merge pull request #5701 from Matt-Yorkley/noimage
Noimage
2020-07-02 20:17:04 +01:00
Luis Ramos
2d4326ded3 Replace empty? with blank? which is equivalent but a bit more resilient, returns false for nil
Present is not blank, so unless blank? becomes if present?
2020-07-01 14:08:07 +01:00
Matt-Yorkley
b441ac2644 Update paths to "noimage" images 2020-06-29 20:07:08 +02:00
Luis Ramos
19da0ba969 Merge branch 'master' into 3-0-stable-may13 2020-05-13 19:50:32 +01:00
Luis Ramos
c9b60d0f62 Merge pull request #5341 from mathewdbutton/5173-show-outstanding-order-balance-on-orders-page
Show outstanding balance on orders page
2020-05-07 16:03:58 +01:00
Mathew Button
e088b27a13 Always display the outstanding balance if not zero 2020-05-06 16:45:44 +10:00
Luis Ramos
be4104d6f3 Merge branch 'master' into 3-0-stable-may-5 2020-05-05 19:11:20 +01:00
Mathew Button
fe6c810505 Add brackets in view instead of API response 2020-05-04 19:09:18 +10:00
Mathew Button
8087e6b31b Show outstanding balance on orders page
Prior to this change, there was no way of knowing how much was owed (or
in need of refunding) at a glance for each order on the orders index page,
this information was only available by clicking through to an order
payment page

This change adds the outstanding balance for each order
2020-05-01 21:38:20 +10:00
Matt-Yorkley
9682544442 Eager-load and update BasicEnterpriseSerializer 2020-04-28 20:10:40 +02:00
Luis Ramos
839b373b5c Merge branch 'master' into 3-0-stable-Apr28 2020-04-28 13:40:19 +01:00
Maikel
2e31f234d6 Merge pull request #5196 from Matt-Yorkley/customers-performance
Admin Customers performance
2020-04-17 13:28:39 +10:00
Matt-Yorkley
4c41c84cc1 Refactor tag rules loading for customers
Fixes N+1 queries on customer tags
2020-04-10 10:12:32 +02:00
Matt-Yorkley
47ac6c1491 Remove unused methods from ProductSimpleSerializer 2020-04-09 09:51:32 +02:00
Matt-Yorkley
b3c968856b Fix some rubocop issues 2020-04-09 09:19:37 +02:00
Matt-Yorkley
b0a7497f2a Remove another N+1 in product serialization 2020-04-09 09:19:37 +02:00
Matt-Yorkley
1b7ac1a252 Don't re-use fat serializers when thin ones are needed.
This cuts the pageload and query count in half, again.
2020-04-09 09:10:41 +02:00
Luis Ramos
29377bbff9 Move 5 subscriptions services from app/services to the engines/order_management/app/services 2020-03-16 17:20:01 +00:00
Luis Ramos
0815068050 Merge branch 'master' into 3-0-stable-mar6 2020-03-06 09:20:03 +00:00
Matt-Yorkley
49bc3308be Fix broken references to url_helpers 2020-02-22 11:06:51 +00:00
luisramos0
38fd028a9f Fix some rubocop issues from previous commit 2020-02-21 10:52:56 +00:00
luisramos0
4e84310d63 Add StripeSCA where StripeConnect is treated as an exception in the setting up of process of a payment method and subscriptions
Here we are copy pasting and adding stripe SCA because we are planning to delete the StripeConnect that will be replaced by the stripe sca implementation
2020-02-21 10:52:56 +00:00
Luis Ramos
3171b60d6f Merge pull request #4580 from Matt-Yorkley/order_capture
Use asynchronous requests for order capture and ship actions
2020-01-13 17:14:40 +00:00
Matt-Yorkley
a3ee6674ea Use asynchronous requests for order capture and ship actions 2019-12-18 14:15:46 +01:00