diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/pos/register.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/pos/register.tt index 7ef3277169..932189150f 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/pos/register.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/pos/register.tt @@ -575,12 +575,17 @@ }, null, 1); $(document).ready(function() { - [% IF cashup_id %] - let $button = $('[data-cashup="[% cashup_id | html %]"]'); - if ($button.length) { - $button[0].click(); + // Check for cashup hash in URL + let hash = window.location.hash; + if (hash && hash.startsWith('#cashup-')) { + let cashup_id = hash.substring(8); // Remove '#cashup-' prefix + let $button = $('[data-cashup="' + cashup_id + '"]'); + if ($button.length) { + $button[0].click(); + // Clean up URL without page reload + history.replaceState(null, null, window.location.pathname + window.location.search); + } } - [% END %] }); [% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/pos/registers.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/pos/registers.tt index dd35313309..4c34a41dcd 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/pos/registers.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/pos/registers.tt @@ -241,12 +241,17 @@ $('#cashup_registerid').val(rid); }); - [% IF cashup_id %] - let $button = $('[data-cashup="[% cashup_id | html %]"]'); - if ($button.length) { - $button[0].click(); + // Check for cashup hash in URL + let hash = window.location.hash; + if (hash && hash.startsWith('#cashup-')) { + let cashup_id = hash.substring(8); // Remove '#cashup-' prefix + let $button = $('[data-cashup="' + cashup_id + '"]'); + if ($button.length) { + $button[0].click(); + // Clean up URL without page reload + history.replaceState(null, null, window.location.pathname + window.location.search); + } } - [% END %] }); [% END %] diff --git a/pos/register.pl b/pos/register.pl index 9d64a84284..3e785dbf18 100755 --- a/pos/register.pl +++ b/pos/register.pl @@ -112,7 +112,8 @@ if ( !$registers->count ) { ); # Redirect to prevent duplicate submissions (POST/REDIRECT/GET pattern) - print $input->redirect( "/cgi-bin/koha/pos/register.pl?registerid=" . $registerid . "&cashup_id=" . $cashup->id ); + print $input->redirect( + "/cgi-bin/koha/pos/register.pl?registerid=" . $registerid . "#cashup-" . $cashup->id ); exit; } else { $template->param( error_cashup_permission => 1 ); diff --git a/pos/registers.pl b/pos/registers.pl index da79977ec1..6718449dd3 100755 --- a/pos/registers.pl +++ b/pos/registers.pl @@ -56,16 +56,17 @@ if ( !$registers->count ) { my $op = $input->param('op') // ''; if ( $op eq 'cud-cashup' ) { if ( $logged_in_user->has_permission( { cash_management => 'cashup' } ) ) { - my $registerid = $input->param('registerid'); + my $registerid = $input->param('registerid'); + my $redirect_url = "/cgi-bin/koha/pos/registers.pl"; if ($registerid) { my $register = Koha::Cash::Registers->find( { id => $registerid } ); - my $cashup = $register->add_cashup( + my $cashup = $register->add_cashup( { manager_id => $logged_in_user->id, amount => $register->outstanding_accountlines->total } ); - $template->param( cashup_id => $cashup->id ); + $redirect_url .= "#cashup-" . $cashup->id; } else { for my $register ( $registers->as_list ) { $register->add_cashup( @@ -78,7 +79,7 @@ if ( $op eq 'cud-cashup' ) { } # Redirect to prevent duplicate submissions (POST/REDIRECT/GET pattern) - print $input->redirect("/cgi-bin/koha/pos/registers.pl"); + print $input->redirect($redirect_url); exit; } else { $template->param( error_cashup_permission => 1 );