From 8e2e62f5eedd7067b3a90410a1483b7dec4bb9ce 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 Content-Type: text/plain; charset="utf-8" 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. --- circ/circulation.pl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/circ/circulation.pl b/circ/circulation.pl index 9296d9e642..336c1c411c 100755 --- a/circ/circulation.pl +++ b/circ/circulation.pl @@ -131,6 +131,8 @@ if ( C4::Context->preference("AutoSwitchPatron") && $barcode ) { $findborrower = $barcode; undef $barcode; undef $borrowernumber; + undef $patron; + $barcodes = []; $autoswitched = 1; } } -- 2.34.1