From 4d351d2c6d2452462732a2cce71565ba45ec3c05 Mon Sep 17 00:00:00 2001 From: Michael Hafen Date: Tue, 20 Feb 2024 14:18:59 -0700 Subject: [PATCH] Bug 36139: Bug 35518 Follow-up to fix AutoSwitchPatron - clear variables Bug 35518 moved some code blocks to after the call to get_user_and_template() so that userenv would be populated before it was needed. This caused a couple variables to be set before the AutoSwitchPatron block could prevent them from being set. Which broke AutoSwitchPatron functionality. This clears two variable so that AuthSwitchPatron works again. The AutoSwitchPatron clears the $borrowernumber variable to switch patrons. With the AuthSwitchPatron block moved, the $patron variable still gets set, and the patron doesn't get switched. The clears the $patron variable too. Also clear the barcode list. The AutoSwitchPatron block got moved, and now the @$barcodes variable gets filled and not cleared. Leading to a 'Barcode not found' error when the patron is auto switched. Test plan: 1. Ensure AutoSwitchPatron is turned on. 2. Select the card number of two patron accounts. 3. Find the first patron in circulation. 4. Enter the second patron's card number in the item barcode field to switch patrons. 5. Observe the error about item barcode not existing, and the patron did not switch. 6. Apply patch and restart services. 7. Enter the second patron's card number in the item barcode field again. 8. Observe that the patron was switched with no error about an invalid barcode. Signed-off-by: David Nind Signed-off-by: Katrin Fischer --- circ/circulation.pl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/circ/circulation.pl b/circ/circulation.pl index 42bd3db073..d1fe834df3 100755 --- a/circ/circulation.pl +++ b/circ/circulation.pl @@ -132,6 +132,8 @@ if ( C4::Context->preference("AutoSwitchPatron") && $barcode ) { $findborrower = $barcode; undef $barcode; undef $borrowernumber; + undef $patron; + $barcodes = []; $autoswitched = 1; } } -- 2.39.5