Bugzilla – Attachment 189409 Details for
Bug 41229
Cash registers are not fully reset on library change
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 41229: Fix desk and register session persistence on library change
Bug-41229-Fix-desk-and-register-session-persistenc.patch (text/plain), 4.39 KB, created by
Martin Renvoize (ashimema)
on 2025-11-10 13:44:42 UTC
(
hide
)
Description:
Bug 41229: Fix desk and register session persistence on library change
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2025-11-10 13:44:42 UTC
Size:
4.39 KB
patch
obsolete
>From 4348d4feeb373d1e9d0165fda601449bea462c70 Mon Sep 17 00:00:00 2001 >From: Martin Renvoize <martin.renvoize@openfifth.co.uk> >Date: Fri, 7 Nov 2025 14:10:09 +0000 >Subject: [PATCH] Bug 41229: Fix desk and register session persistence on > library change > >When changing library in circ/set-library.pl, desk and register values >were not being properly cleared from the session. This caused stale >desk/register data from the previous library to persist, resulting in: >- Incorrect cashup displays showing wrong library's register >- POS defaulting to registers from different libraries >- Session state inconsistent with visual UI > >Three issues fixed: >1. Template: Changed register "None" option ID from "set-library-noregister" > to "noregister" to match JavaScript expectations (consistent with desk handling) >2. Desk logic: Changed condition to use defined() and explicitly clear session > when "No desk" is selected >3. Register logic: Added session clearing when "No register" is selected and > fixed condition to handle empty initial state > >Test plan: >1. Select Library A with Register 5 >2. Change to Library B without selecting a register >3. Verify register is cleared from session (check POS page) >4. Repeat for desk selection >5. Verify explicit "-- None --" selection clears session values >--- > circ/set-library.pl | 35 ++++++++++++------- > .../prog/en/modules/circ/set-library.tt | 2 +- > 2 files changed, 24 insertions(+), 13 deletions(-) > >diff --git a/circ/set-library.pl b/circ/set-library.pl >index d4ff78ca976..c1912b56f66 100755 >--- a/circ/set-library.pl >+++ b/circ/set-library.pl >@@ -71,26 +71,37 @@ if ( > $branch = $userenv_branch; # fallback value > } > >-if ( $desk_id && ( !$userenv_desk or $userenv_desk ne $desk_id ) ) { >- my $desk = Koha::Desks->find( { desk_id => $desk_id } ); >- my $old_desk_name = ''; >- if ($userenv_desk) { >- $old_desk_name = Koha::Desks->find( { desk_id => $userenv_desk } )->desk_name; >+if ( defined($desk_id) && ( !$userenv_desk || $userenv_desk ne $desk_id ) ) { >+ if ($desk_id) { >+ >+ # A desk was selected >+ my $desk = Koha::Desks->find( { desk_id => $desk_id } ); >+ $session->param( desk_name => $desk->desk_name ); >+ $session->param( desk_id => $desk->desk_id ); >+ } else { >+ >+ # "No desk" was explicitly selected - clear desk from session >+ $session->clear( [ 'desk_name', 'desk_id' ] ); > } >- $session->param( desk_name => $desk->desk_name ); >- $session->param( desk_id => $desk->desk_id ); > $updated = 1; > } else { > $desk_id = $userenv_desk; > } > > if ( defined($register_id) >- && ( $userenv_register_id ne $register_id ) ) >+ && ( !$userenv_register_id || $userenv_register_id ne $register_id ) ) > { >- my $old_register_name = C4::Context->userenv->{'register_name'} || ''; >- my $register = Koha::Cash::Registers->find($register_id); >- $session->param( 'register_id', $register_id ); >- $session->param( 'register_name', $register ? $register->name : '' ); >+ if ($register_id) { >+ >+ # A register was selected >+ my $register = Koha::Cash::Registers->find($register_id); >+ $session->param( 'register_id', $register_id ); >+ $session->param( 'register_name', $register ? $register->name : '' ); >+ } else { >+ >+ # "No register" was explicitly selected - clear register from session >+ $session->clear( [ 'register_id', 'register_name' ] ); >+ } > $updated = 1; > } else { > $register_id = $userenv_register_id; >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/set-library.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/set-library.tt >index 7a12551989c..8759c5eab8c 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/set-library.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/set-library.tt >@@ -87,7 +87,7 @@ > <li> > <label for="set-library-register_id">Choose cash register:</label> > <select name="register_id" id="set-library-register_id"> >- <option id="set-library-noregister" selected="selected" value="">-- None --</option> >+ <option id="noregister" selected="selected" value="">-- None --</option> > [% PROCESS options_for_registers registers => Registers.all() %] > </select> > </li> >-- >2.51.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 41229
:
189409
|
189890
|
190016