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
2e9bae0ea5
Move relation includes out of query object
...
This query object is meant to be reusable but those includes are
context-specific and will likely not be needed when reusing the query
elsewhere. If we keep them there, chances are next dev might not notice
it and will introduce a performance regression.
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
e404225de0
Extract query object
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
Luis Ramos
0f27f57cbb
Use new Admin::ResourceController
2020-12-03 15:32:20 -08:00
Luis Ramos
0fb9f44dda
Make all controllers use new Admin::ResourceController
2020-12-03 15:32:20 -08:00
Luis Ramos
8a61257547
Rename all before_filter to before_action, it's the same function with a new name
2020-06-22 13:11:57 +01:00
Luis Ramos
839b373b5c
Merge branch 'master' into 3-0-stable-Apr28
2020-04-28 13:40:19 +01:00
Matt-Yorkley
4ef61b642e
Fix disappearing tags issue
2020-04-22 01:33:38 +02:00
Matt-Yorkley
a6414b6dbe
Make sure taggable_type is 'Customer' when querying customer tags
2020-04-10 20:14:14 +02: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
e53f733966
Eager-load addresses in customer serializer
2020-04-10 08:20:15 +02:00
Matt-Yorkley
2a8809e6e8
Eager-load default card in customer serializer
2020-04-10 08:20:15 +02:00
Matt-Yorkley
cf712e9478
Select only enterprise id
2020-04-09 17:41:13 +02:00
Luis Ramos
e5f56c19c0
Switch to using PermittedAttributes::Address instead of spree version of it that will be removed later
2020-03-25 10:52:23 +00:00
Luis Ramos
22a005df47
Add needed permitted attributes to admin/customers_controller
2020-03-25 10:51:55 +00:00
Luis Ramos
9b0d7b9604
Ammend customers_controller to include ship address attributes permit and also permit #update with specific attributes
2020-03-25 10:51:55 +00:00
Luis Ramos
4fd3026bd8
Add strong parameters permits to some controllers
2020-03-25 10:51:55 +00:00
Matt-Yorkley
53645517af
Update deprecated #find_by_* methods
2020-02-22 11:06:51 +00:00
luisramos0
9404aacfb2
run rubocop --auto-correct
2019-11-10 18:42:43 +00:00
luisramos0
86b0d71c7e
Result of rubocop auto-correct and rebuilding rubocop_manual_todo
2019-05-28 12:57:29 +01:00
Rob Harrington
21c3f7d21c
Remove unrequired #cards and #addresses actions from Admin::CustomerController
2018-07-05 19:26:12 +10:00
Rob Harrington
e0d46aa105
Add new serializer to allow search for customer addresses
2018-07-05 19:26:12 +10:00
Rob Harrington
cf8ca1f8c1
Add show action to Admin::CustomersController
2018-07-05 19:26:11 +10:00
Rob Harrington
672f96b85b
Replace references to 'standing order' with 'subscription'
2018-02-09 14:44:13 +11:00
Rob Harrington
bdac68900f
Move address and card loading logic down into DetailsController
...
Also switch to using CreditCardResource to load the card
2018-02-09 14:44:05 +11:00
Rob Harrington
494f2f4821
Add cards lookup action to CustomersController
2018-02-09 14:44:04 +11:00
Rob Harrington
d3937e5c80
Move customer address lookup action to CustomersController
2018-02-09 14:44:03 +11:00
Rob Harrington
6586e67a5c
Better messaging around deletion of customers
2016-06-17 14:47:04 +10:00
Rob Harrington
61969f5c84
Ensure CustomersController#update.json gives an appropriate response
...
pendingChanges submits an empty string when a field is blank (rather than undefined)
2016-06-16 22:42:53 +10:00
Rob Harrington
564c1a3650
Improvements to customers page
...
Create customer from dialog
Limiting the number of products shown as once
Adding SaveBar and StatusMessage
2016-05-25 08:10:20 +10:00
Rob Harrington
ddcfe1535a
Making TagRule autocomplete available to models other than Customer
...
Incorporate ng admin.tags module and rails TagController into existing admin.tagRules module + TagRuleController
2016-05-25 08:10:20 +10:00
Maikel Linke
23e598f2f8
Destroy customer without flash notice
2016-04-22 14:55:43 +10:00
Maikel Linke
48f1794d70
Allow admin user to create customers
2016-04-15 14:34:29 +10:00
Maikel Linke
e17b609517
Apply code standards
2016-04-15 14:31:54 +10:00
Maikel Linke
831df0b222
Create and delete customers in admin interface
...
Removed Customers service and extended CustomerResource.
2016-04-15 11:12:22 +10:00
Rob Harrington
ed7a53968c
Using clearer json_request? method for customers controller
2015-06-12 01:49:34 +08:00
Rob Harrington
734ad21e82
Customers controller responds with json
2015-05-13 12:44:35 +10:00
Rob Harrington
220f42fcf2
Customers controller serializes data for json requests, just renders view without data for html
2015-05-13 12:44:32 +10:00
Rob Harrington
37ff61d663
Adding basic routing to display customer index page
2015-05-13 12:44:32 +10:00