use CGI qw ( -utf8 );
use C4::Context;
-use C4::Output;
-use C4::Auth qw/:DEFAULT get_session/;
-use C4::Koha;
+use C4::Output qw( output_html_with_http_headers );
+use C4::Auth qw( get_template_and_user get_session );
use Koha::BiblioFrameworks;
+use Koha::Cash::Registers;
use Koha::Libraries;
use Koha::Desks;
template_name => "circ/set-library.tt",
query => $query,
type => "intranet",
- debug => 1,
flagsrequired => { catalogue => 1, },
});
my $sessionID = $query->cookie("CGISESSID");
my $session = get_session($sessionID);
-my $branch = $query->param('branch' );
-my $desk_id = $query->param('desk_id');
-my $userenv_branch = C4::Context->userenv->{'branch'} || '';
-my $userenv_desk = C4::Context->userenv->{'desk_id'} || '';
+my $branch = $query->param('branch');
+my $desk_id = $query->param('desk_id');
+my $register_id = $query->param('register_id');
+my $userenv_branch = C4::Context->userenv->{'branch'} || '';
+my $userenv_desk = C4::Context->userenv->{'desk_id'} || '';
+my $userenv_register_id = C4::Context->userenv->{'register_id'} || '';
my @updated;
-# $session lddines here are doing the updating
+# $session lines here are doing the updating
if ( $branch and my $library = Koha::Libraries->find($branch) ) {
if (! $userenv_branch or $userenv_branch ne $branch ) {
my $branchname = $library->branchname;
$session->param('branchname', $branchname); # update sesssion in DB
$session->param('branch', $branch); # update sesssion in DB
- $session->flush();
push @updated, {
updated_branch => 1,
old_branch => $userenv_branch,
old_desk => $old_desk_name,
};
}
+ if ( defined($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 : '' );
+ push @updated,
+ {
+ updated_register => 1,
+ old_register => $old_register_name
+ };
+ }
+ $session->flush();
} else {
$branch = $userenv_branch; # fallback value
$desk_id = $userenv_desk;
$_ or next; # disclude blanks
$_ eq "branch" and next; # disclude branch
$_ eq "desk_id" and next; # disclude desk_id
+ $_ eq "register_id" and next; # disclude register
$_ eq "oldreferer" and next; # disclude oldreferer
push @recycle_loop, {
param => $_,
value => scalar $query->param($_),
- };
+ };
}
-my $referer = $query->param('oldreferer') || $ENV{HTTP_REFERER};
+my $referer = $query->param('oldreferer') || $ENV{HTTP_REFERER} || '';
$referer =~ /set-library\.pl/ and undef $referer; # avoid sending them back to this same page.
if (scalar @updated and not scalar @recycle_loop) {