David Cook
c165ade4ba
Avoid unnecessary save
...
Actually, the variant factory is still adding an extra save. We should refactor Variant to avoid that.. but the afternoon slump has got me.
2026-03-11 11:09:12 +11:00
David Cook
7e8b3694be
Move class instance variable to helper
2026-03-11 11:09:12 +11:00
David Cook
05c31db46a
Remove touch
...
I think I was just following convention from existing relationships. Perhaps you could argue that a variant is affected by the links added/removed.. but we never look at updated_at so really there's no point at all.
2026-03-11 11:09:12 +11:00
David Cook
299ada1220
Refactor: move variant duplication to model
...
I tried to avoid it but rubocop made me move it. I think maybe it will need to go into a concern or service class later, but hopefully it's ok here for now.
2026-03-11 11:09:12 +11:00
David Cook
5757f086ec
Set owner enterprise when creating source variant
2026-03-11 11:09:12 +11:00
David Cook
8955ffe126
AddOwnerToSpreeVariants [migration]
...
Should existing variants be migrated to have an owner (copied from supplier)? No, because you can change supplier. This concept needs work.
2026-03-11 11:09:09 +11:00
David Cook
b26152cf0e
Only show option when you have permission
...
Preload the allow list once in the controller. This controller was initially set up to avoid instance variables, and pass variables explicitly to the template. That's a good principle, but in practice we have a growing list of variables passed down the chain to multiple partials which is getting cumbersome. I think instance variables have their place after all.
2026-03-11 11:08:50 +11:00
David Cook
78db179ff3
haml-lint:disable ViewLength
...
TIL we have linting on haml.
I couldn't think of a better way to handle this but would be glad to receive feedback.
2026-03-11 11:08:50 +11:00
David Cook
5fc6d25a69
Display presence of variant link in UI
...
It's quite ugly. But we will be iterating on this later.
2026-03-11 11:08:50 +11:00
David Cook
b877540f5f
Create sourced variant link on clone
2026-03-11 11:08:50 +11:00
copilot-swe-agent[bot]
04c0adf960
Fix source_variants and target_variants associations in Variant model
...
Co-authored-by: dacook <4188088+dacook@users.noreply.github.com >
Thanks co-pilot for sending me in the right direction.
Would this be neater as a has_and_belongs_to_many? Maybe but I will try to keep moving.
2026-03-11 11:08:50 +11:00
David Cook
1c89e9979e
CreateVariantLinks [migration]
...
Tried using the rails generator, but as usual it was a waste of time becuase it doesn't handle unusual cases.
I found more good guidance from that stackoverflow post:
> why are you worrying about your indexes? Build your app!
Something's not right in the model, see next commit.
2026-03-11 11:08:47 +11:00
David Cook
eba2fbcc30
Create source variants
2026-03-11 11:07:08 +11:00
David Cook
940aa57daf
Set up permissions for creating source variants
2026-03-11 11:07:08 +11:00
David Cook
6fe2357ca0
Add enterprise permission create_sourced_variants
2026-03-11 11:07:08 +11:00
David Cook
bd01b5f113
Add 'create sourced variant' option in variant actions menu
...
For now, we will only be able to create sourced variant from variants that are visible to us (variants that we manage)
In a later commit I will hide the option if you can't use it
2026-03-11 11:07:08 +11:00
Gaetan Craig-Riou
4810b02233
Merge pull request #13702 from marincarroll/improve-accessibility-of-admin-pagination
...
Improve accessibility of admin pagination
2026-03-10 22:12:57 +11:00
Gaetan Craig-Riou
251a1acffc
Clean up enterprise controller
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
d5dec05ab1
Remove payment method ApiCustomerCredit
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
7790259c27
Add transaction origin for internal credit payments
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
6a99d2a3c8
Add transaction origin in descriptiopn
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
e7a2b7ea48
Remove payment method from customer account transaction
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
bc23423521
Remove the link between enterprise and internal payment method
...
Enterprise have access to the internal payment method by default.
The access is handled at the application level so we don't have to
manage database links.
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
a4ca56c7a5
Refactored internal payment method
...
We now check on known payment method type, instead of using the internal
collumn.
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
9f7655852d
Provide helper method to get internal payment method
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
ec106a8f83
Add new payment method ApiCustomerCredit
...
It was previously modelled by a "Check" payment method
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
2e7237197a
Refactor customer credit payment method
...
Set fixed name and description
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
25c579c478
Per review, small code fixes
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
ed3f928783
Fix diplaying customer transactions when no transaction
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
63a9601812
Add scroll bar to modal component
...
When content is too big, the bottom is displayed off screen
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
3b068b7125
Add created_by to customer account transactions
...
It allows tracking of who credited the customer via :
- customer account transaction API
- order payment screen
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
597c0590ed
Add the ability to show ID on backoffice customer screen
...
The customer ID is needed for the customer account transaction api
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
b9b91620ef
Make sure to link credit payment method on create and update
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
c67d47a773
Check if internal payment can be voided
...
Add extra security, we don't want to void a credit payment that is not
completed, otherwise we would be refunding credit that was not used.
A credit payment should not be in a non completed state, but you never
know.
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
34c91613f7
Customer account transaction, simplify balance calculation
...
Lock the customer to ensure the balance calculation is correct. Much
simpler than locking the first transaction.
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
219e3ca9c8
Fix typo
2026-03-10 16:07:42 +11:00
Gaetan Craig-Riou
628810eb33
Fix spec to work with the internal payment method
2026-03-10 16:07:42 +11:00
Gaetan Craig-Riou
d95aac333b
Add internal to payment method
...
It's used to hide the payment method used for paying with credit. These
payment method are for internal use only.
2026-03-10 16:07:42 +11:00
Gaetan Craig-Riou
3e2e7f1799
Add button to credit customer when order is credit owed state
...
It will add a negative payment, matching the amount credited in the
customer_account_transaction
2026-03-10 16:07:42 +11:00
Gaetan Craig-Riou
ee13a3abaf
Add Orders::CustomerCreditService.refund
...
It will be used to credit the customer any fund from an order in
credit_owed state
2026-03-10 16:07:42 +11:00
Gaetan Craig-Riou
d5bd8fa086
Add ability to "void" a customer credit payment
...
Voiding the payment will refund the credit used to the customer.
2026-03-10 16:07:42 +11:00
Gaetan Craig-Riou
5e4cd4d51d
Remove unused helper
2026-03-10 16:07:42 +11:00
Gaetan Craig-Riou
41e4fd79a3
Move logic to apply customer credit to it's on service
...
It's now called as a before transition callback when the order move to
payment. We need to apply the credit at this point to account for
order fees, ie: shippment fees.
2026-03-10 16:07:42 +11:00
Gaetan Craig-Riou
a60afd10e4
Display credit used on the order confirmation page
2026-03-10 16:07:42 +11:00
Gaetan Craig-Riou
b42b10fcd1
Use the order outstanding balance to create payment
...
When a customer credit is applied to an order, the balance due is the
order outstanding balance and not the order total.
2026-03-10 16:07:42 +11:00
Gaetan Craig-Riou
c8dbf4c6f0
Add error handling around payment with credit
...
For now we log error but don't report it to the user, so they can
proceed through the checkout.
2026-03-10 16:07:42 +11:00
Gaetan Craig-Riou
f5a3093e41
Automatically use credit at checkout when available
...
This only cover the ideal scenario, error handling will be added later
2026-03-10 16:07:42 +11:00
Gaetan Craig-Riou
5a376c9106
Add customer_credit scope
2026-03-10 16:07:42 +11:00
Gaetan Craig-Riou
152fd15bd0
Use display_name and display_description for payment method
2026-03-10 16:07:42 +11:00
Gaetan Craig-Riou
5bdb6e6d69
Clean up spec
2026-03-10 16:07:42 +11:00