Koha-clms/t/db_dependent
Martin Renvoize c58d465cfc
Bug 29923: Prevent overpayment credit when written-off accruing fine is adjusted on check-in
When a staff member writes off an accruing fine and the item is
subsequently checked in (backdated or in fine-free mode), the fine
amount is recalculated downward via adjust(). The previous code
unconditionally created an OVERPAYMENT credit whenever the adjusted
outstanding went negative, regardless of whether the existing credits
were reversible payments or non-reversible writeoffs/discounts.

This caused patrons to receive an erroneous credit equal to the
written-off amount, since writeoffs should simply be absorbed when
the underlying fine shrinks - no refund is due.

The fix calculates the total non-reversible credits (writeoffs,
discounts, cancellations) applied to the debit using the existing
filter_by_non_reversible method, and only generates an OVERPAYMENT
credit for the portion attributable to reversible cash payments that
exceed the recalculated fine amount.

Test plan:
1. Write off an accruing fine in full
2. Check the item in (backdated or fine-free)
3. Confirm no overpayment credit is generated for the patron

Signed-off-by: Benjamin Daeuber <BDaeuber@fargolibrary.org>
Signed-off-by: Andrew Fuerste Henry <andrew@bywatersolutions.com>
Signed-off-by: Laura Escamilla <laura.escamilla@bywatersolutions.com>
(cherry picked from commit 44483cab32)
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
2026-05-27 15:03:29 +00:00
..
Acquisition Bug 38343: (QA follow-up) Improve tests and tidy 2024-11-22 10:22:40 +01:00
Auth Bug 36056: Clarify subpermissions AND behavior 2024-03-07 17:35:40 +01:00
AuthoritiesMarc
…
Authority Bug 40119: Unit tests 2025-07-25 14:27:25 +02:00
Biblio Bug 33268: Add tests for context module priority 2025-04-17 14:30:33 +02:00
Budgets
…
Circulation Bug 40331: (follow-up) Adjust t/db_dependent/Circulation/transfers.t 2025-10-10 16:34:06 +02:00
CourseReserves Bug 32351: Fix CourseItems.t 2022-11-30 15:58:18 -03:00
Creators Bug 37720: (follow-up) Adjust tests 2024-10-18 12:07:52 +02:00
Exporter Bug 25503: Add failing test for _get_biblio_for_export 2023-05-10 15:26:19 -03:00
Holds Bug 36923: Remove warnings from Holds/LocalHoldsPriority.t 2024-05-24 15:36:46 +02:00
HoldsQueue Bug 40377: Remove warnings from HoldsQueue/TransportCostOptimizations.t 2025-08-01 15:25:55 +02:00
Items Bug 36010: Fix Items/AutomaticItemModificationByAge.t failing since Bug 32029 2024-03-07 16:36:46 +01:00
Koha Bug 29923: Prevent overpayment credit when written-off accruing fine is adjusted on check-in 2026-05-27 15:03:29 +00:00
LDAP
…
Labels Bug 37898: Wrap labels tests inside transactions 2024-09-19 12:50:19 +01:00
Letters Bug 17976: Update test to include fines 2024-11-08 12:42:11 +01:00
Members Bug 33947: Remove GetAllIssues 2023-10-20 11:03:03 -03:00
OAI Bug 40265: (try to) prevent OAI/Server.t to fail on slow server 2025-10-31 14:40:38 +00:00
Patron Bug 37392: (follow-up) Limit a borrower not in a group and fix tests 2024-11-01 09:34:39 -03:00
Record Bug 33339: Prevent Formula Injection (CSV Injection) in CSV files 2024-11-14 10:46:31 +01:00
Reports Bug 37784: Do not show forbidden columns in reports dictionary 2025-03-24 17:59:09 +01:00
Reserves Bug 40385: Remove warning from Reserves/CancelExpiredReserves.t 2025-08-01 11:58:20 +02:00
SIP Bug 40915: (RMaint follow-up) Backport adaptation to satisfy xt/find-license-problems.t 2025-11-10 14:52:06 +01:00
Search
…
Serials Bug 38829: Add a test 2025-02-18 19:17:12 +01:00
Template/Plugin Bug 37684: Direct link to expired news are broken 2024-11-07 17:32:38 +01:00
Utils Bug 34913: Adjust C4::Utils::DataTables::VirtualShelves 2024-01-26 15:13:42 +01:00
api/v1 Bug 40219: Add unit test to verify welcome email is not sent on validation failure 2026-02-18 14:54:56 +01:00
cronjobs
…
data Bug 39345: 24.11 SQUASH 2025-10-16 07:47:17 +02:00
misc/translator
…
mojo Bug 37286: Add tests for REST authentication through Mojo apps 2025-04-22 23:02:29 +02:00
selenium Bug 40406: Remove warnings from selenium/basic_workflow.t 2025-08-01 15:16:45 +02:00
www Bug 32693: Fix history.t 2024-05-08 18:23:57 +02:00
00-strict.t Bug 36999: Fix 00-strict.t fails to find koha_perl_deps.pl 2024-06-13 13:43:47 +01:00
Accounts.t Bug 34912: Add 14 hours to 1970 date in Account(s).t 2023-10-04 09:15:39 -04:00
Acquisition.t Bug 32132: (RM follow-up) Use testbuilder in Acquisitions.t 2024-04-24 10:08:28 +01:00
Amazon.t
…
ArticleRequests.t Bug 36081: (QA follow-up) Resolve IsNotDebit exception in ArticleRequests.t 2025-02-24 20:43:23 +01:00
AudioAlerts.t
…
Auth.t Bug 39746: Fix wrong system preference 'AutoLocation' in test suite 2025-09-29 11:21:34 +02:00
AuthUtils.t
…
Auth_with_cas.t
…
Auth_with_ldap.t Bug 38526: (bug 36822 follow-up): Improve datetime comparison in tests 2024-11-25 13:16:40 +01:00
Auth_with_shibboleth.t Bug 40317: Remove warnings from Auth_with_shibboleth.t output 2025-07-31 14:13:46 +02:00
AuthorisedValues.t Bug 40376: Remove warning from AuthorisedValues.t 2025-08-01 15:28:51 +02:00
AuthoritiesMarc.t Bug 35989: (QA follow-up): Fix QA tests 2024-06-06 15:18:43 +01:00
AuthoritiesMarc_GetTagsLabels.t
…
Barcodes.t Bug 37070: (QA follow-up) Fix qa script issues 2024-10-18 14:26:05 +02:00
Barcodes_ValueBuilder.t
…
Biblio.t Bug 40390: Remove warnings from t/db_dependent/Biblio.t 2025-08-01 14:41:37 +02:00
Biblio_holdsqueue.t
…
Breeding.t Bug 28166: (QA follow-up) Fix and tidy tests and code 2023-10-23 11:33:50 -03:00
Breeding_Auth.t Bug 33404: Add unit tests 2023-07-05 12:17:22 -03:00
Budgets.t Bug 31631: (QA follow-up) Tidy code 2023-10-18 15:41:37 -03:00
Cache.t
…
Calendar.t Bug 33727: (QA follow-up) perl tidy whole file 2023-07-14 12:14:37 -03:00
Charset.t
…
Circulation.t Bug 40969: Mock the RenewalPeriodBase preference correctly 2025-11-10 16:21:25 +01:00
Circulation_holdsqueue.t Bug 40403: Remove warning from Circulation_holdsqueue.t 2025-08-01 11:45:38 +02:00
ClassSources.t Bug 37870: Run tests from ClassSources.t within transactions 2024-09-12 13:52:35 +02:00
Clubs.t
…
Context.t Bug 32687: Get server version in Context::get_versions 2023-02-24 17:52:28 -03:00
Contract.t
…
CourseReserves.t Bug 36687: (RM follow-up) Fix unit tests 2024-05-09 09:22:00 +01:00
DecreaseLoanHighHolds.t Bug 32496: Reduce unnecessary unblessings of objects in Circulation.pm 2023-09-22 10:52:39 -03:00
Filter_MARC_ViewPolicy.t Bug 32648: Clear cache in Filter_MARC_ViewPolicy.t 2023-05-16 11:24:26 +02:00
Fines.t
…
FrameworkPlugin.t Bug 37146: Add tests 2024-08-01 17:26:37 +02:00
Heading.t Bug 33557: Add LinkerConsiderThesaurus system preference 2023-05-10 15:26:26 -03:00
Heading_MARC21.t Bug 33277: Do not search using thesaurus when linking non 6XX fields 2023-05-10 15:26:22 -03:00
Hold.t Bug 34032: (QA follow-up) Tidy code 2024-04-29 09:35:38 +02:00
Holds.t Bug 40350: Remove warnings from t/db_dependent/Holds.t 2025-08-01 11:29:50 +02:00
HoldsQueue.t Bug 32565: (follow-up) Tidy 2024-04-30 14:32:07 +02:00
Holidays.t Bug 27249: Replace DateTime->now by dt_from_string 2023-10-17 14:45:34 -03:00
ILSDI_Services.t Bug 41012: (bug 40622 follow-up) Clear the MSS cache 2025-11-10 15:05:40 +01:00
ImportBatch.t Bug 42098: (follow-up) Enable plugin in ImportBatch.t test 2026-05-27 12:07:10 +00:00
ImportExportFramework.t
…
Installer.t
…
Items.t Bug 14907: Unit tests 2025-04-22 23:01:31 +02:00
Koha.t Bug 40277: Add a test 2025-07-28 11:03:56 +02:00
Koha_Database.t Bug 36367: Remove schema_stack 2024-06-14 11:17:18 +01:00
Koha_Elasticsearch.t Bug 35138: Fix Koha_Elasticsearch.t 2024-04-30 12:00:59 +02:00
Koha_ExternalContent_OverDrive.t
…
Koha_MetadataRecord_Authority.t
…
Koha_Misc_Files.t
…
Languages.t Bug 38903: Fix theme in some getTranslatedLanguages calls 2025-09-29 09:37:15 +02:00
Letters.t Bug 40410: Remove warning from Letters. 2025-08-01 15:12:32 +02:00
LibraryGroups.t
…
Linker_Default.t Bug 35125: Respect LinkerConsiderThesaurus in update_cache 2024-07-01 18:55:42 +02:00
Linker_FirstMatch.t
…
Log.t Bug 37522: Unit tests 2024-10-29 16:14:44 +01:00
MarcModificationTemplates.t Bug 32950: Remove unecessary DELETE 2025-10-31 15:50:32 +00:00
Matcher.t Bug 33869: Move Matcher.t to t/db_dependent 2023-09-01 11:07:45 -03:00
Members.t Bug 37845: Remove C4::Members::DeleteExpiredOpacRegistrations 2024-10-21 15:10:31 +02:00
Message.t Bug 37757: (follow-up) Adjust existing tests 2024-09-13 16:16:01 -03:00
MungeMarcPrice.t
…
Overdues.t Bug 40409: Remove warnings from t/db_dependent/Overdues.t 2025-08-01 15:15:04 +02:00
Passwordrecovery.t
…
PatronLists.t Bug 32730: Add Patron Lists tab to patron details and circulation pages 2023-11-01 17:23:09 -03:00
Patroncards.t Bug 37898: Wrap Patroncards.t inside a transaction 2024-09-19 12:50:20 +01:00
Patrons.t Bug 36508: Unit tests 2024-04-30 14:32:04 +02:00
Prices.t Bug 34967: Move to db_dependent 2023-10-03 09:24:50 -04:00
Record.t Bug 14670: Fix tests and import 2024-11-14 10:46:37 +01:00
RecordProcessor_EmbedSeeFromHeadings.t
…
Reports.t
…
Reserves.t Bug 41449: Reserves.t - fix description and assumption for onshelfholds 2026-04-17 13:33:31 +00:00
RotatingCollections.t
…
Search.t Bug 36924: Remove warning "Value not allowed for auto_incr itemnumber in Item" 2024-05-23 17:51:15 +02:00
Serials.t Bug 37476: Unit tests 2024-07-26 14:50:45 +01:00
Serials_2.t
…
Service.t
…
ShelfBrowser.t
…
Sitemapper.t Bug 36977: (QA follow-up) Adapt tests 2024-10-30 14:34:52 +01:00
SocialData.t Bug 33833: Move to db_dependent 2023-09-05 14:35:36 -03:00
StockRotationItems.t
…
StockRotationRotas.t
…
StockRotationStages.t Bug 39717: Use numeric comparison for stock rotation stages 2025-09-29 10:06:37 +02:00
SuggestionEngine_ExplodedTerms.t
…
Suggestions.t Bug 38235: Unit tests 2024-11-12 17:50:18 +01:00
TablesSettings.t Bug 33484: Fix TablesSettings.t 2024-10-28 17:10:24 +01:00
Tags.t
…
Templates.t Bug 38467: (follow-up) Fix test 2025-02-18 19:17:19 +01:00
TestBuilder.t Bug 28966: (QA follow-up) Fix failing unit tests 2023-07-26 15:41:12 -03:00
Upload.t
…
UsageStats.t Bug 38104: Always update when hea cronjob is run 2025-04-22 23:02:27 +02:00
Virtualshelves.t Bug 39427: (follow-up) Adjust number of tests 2025-09-19 14:57:12 +02:00
XISBN.t
…
XSLT.t Bug 38100: Unit tests 2024-11-08 11:23:50 +01:00
check_kohastructure.t
…
check_sysprefs.t Bug 34000: Unit tests 2026-04-22 20:18:27 +01:00
db_structure.t
…
rollingloans.t Bug 32496: Reduce unnecessary unblessings of objects in Circulation.pm 2023-09-22 10:52:39 -03:00
sysprefs.t Bug 36793: Unit test 2024-05-17 10:36:34 +02:00
yaml.t
…
zebra_config.pl
…