Bug 28664

Summary: One should not be able to issue a refund against a VOID accountline
Product: Koha Reporter: Martin Renvoize <martin.renvoize>
Component: Fines and feesAssignee: Martin Renvoize <martin.renvoize>
Status: Failed QA --- QA Contact: Testopia <testopia>
Severity: major    
Priority: P5 - low CC: andrewfh, david, kyle, sally.healey, testopia, tomascohen
Version: Main   
Hardware: All   
OS: All   
Change sponsored?: --- Patch complexity: Trivial patch
Documentation contact: Documentation submission:
Text to go in the release notes:
Version(s) released in:
Bug Depends on: 27971    
Bug Blocks: 13985    
Attachments: Bug 28664: Prevent redunfs against void lines
Bug 28664: Prevent refunds against void lines
Bug 28664: Prevent refunds against void lines

Description Martin Renvoize 2021-07-05 18:32:13 UTC
When adding the VOID account line type in bug 27971 I neglected to update the logic for the display of the 'Issue refund' button on the patron transactions page.
Comment 1 Martin Renvoize 2021-07-05 18:37:05 UTC
Created attachment 122587 [details] [review]
Bug 28664: Prevent redunfs against void lines

With the introduction of double entry accounting for VOID actions, we
need to add an additional filter to the 'Issue refund' button appearance

Test plan
1/ Add a debt
2/ Pay the debt
3/ Void the payment
4/ Confirm that with the patch applied the 'Issue refund' button doesn
not appear on the 'Void' accountline.
Comment 2 David Nind 2021-11-10 19:56:49 UTC
Patch doesn't apply 8-(..

Apply? [(y)es, (n)o, (i)nteractive] y
Applying: Bug 28664: Prevent redunfs against void lines
Using index info to reconstruct a base tree...
M	koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt
Falling back to patching base and 3-way merge...
Auto-merging koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt
CONFLICT (content): Merge conflict in koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt
error: Failed to merge in the changes.
Patch failed at 0001 Bug 28664: Prevent redunfs against void lines
Comment 3 Martin Renvoize 2021-11-11 12:09:04 UTC
Created attachment 127537 [details] [review]
Bug 28664: Prevent refunds against void lines

With the introduction of double entry accounting for VOID actions, we
need to add an additional filter to the 'Issue refund' button appearance

Test plan
1/ Add a debt
2/ Pay the debt
3/ Void the payment
4/ Confirm that with the patch applied the 'Issue refund' button doesn
not appear on the 'Void' accountline.
Comment 4 Martin Renvoize 2021-11-11 12:09:51 UTC
Always moving is our Koha!... :)

Rebased, thanks for looking David.
Comment 5 David Nind 2021-11-11 15:52:44 UTC
Created attachment 127548 [details] [review]
Bug 28664: Prevent refunds against void lines

With the introduction of double entry accounting for VOID actions, we
need to add an additional filter to the 'Issue refund' button appearance

Test plan
1/ Add a debt
2/ Pay the debt
3/ Void the payment
4/ Confirm that with the patch applied the 'Issue refund' button doesn
not appear on the 'Void' accountline.

Signed-off-by: David Nind <david@davidnind.com>
Comment 6 Tomás Cohen Arazi 2021-11-11 20:44:12 UTC
The patch itself is simple and does the job. But I think we are a bit fragile here. Too much calculation in the controller/templates.

Can we add something like:

Koha::Account::Line->can_be_reduced
Koha::Account::Line->refund

and reuse it both in the templates and controllers? I would like the code to explode if tricked to try refunding a 'VOID' line.

I can help coding or writing the tests if required.

If this is being worked on somewhere else, please point me to the right direction.