Bugzilla – Attachment 189361 Details for
Bug 40445
Point of Sale reconciliation input during daily summaries
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 40445: Fix desk and register session persistence on library change
Bug-40445-Fix-desk-and-register-session-persistenc.patch (text/plain), 4.39 KB, created by
Martin Renvoize (ashimema)
on 2025-11-07 17:07:41 UTC
(
hide
)
Description:
Bug 40445: Fix desk and register session persistence on library change
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2025-11-07 17:07:41 UTC
Size:
4.39 KB
patch
obsolete
>From f46618e3df3ce91291501ff96c84213aa5144d79 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 40445: 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 40445
:
185289
|
185290
|
185291
|
185292
|
185809
|
186636
|
186637
|
186638
|
186639
|
186640
|
186641
|
186642
|
186643
|
189333
|
189334
|
189335
|
189336
|
189337
|
189338
|
189339
|
189340
|
189341
|
189353
|
189354
|
189355
|
189356
|
189357
|
189358
|
189359
|
189360
|
189361
|
189362
|
189363
|
189364
|
189410
|
189411
|
189412
|
189413
|
189414
|
189415
|
189420
|
189421
|
189422
|
189423
|
189424
|
189425
|
189426
|
189427
|
189428
|
189429
|
189430
|
189476
|
189477
|
189478
|
189479
|
189480
|
189481
|
189482