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;
my $query = CGI->new();
template_name => "circ/set-library.tt",
query => $query,
type => "intranet",
- debug => 1,
- authnotrequired => 0,
flagsrequired => { catalogue => 1, },
});
my $sessionID = $query->cookie("CGISESSID");
my $session = get_session($sessionID);
-my $branch = $query->param('branch' );
-my $userenv_branch = C4::Context->userenv->{'branch'} || '';
+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;
- $template->param(LoginBranchname => $branchname); # update template for new branch
- $template->param(LoginBranchcode => $branch); # update template for new branch
$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,
+ new_branch => $branch,
};
} # else branch the same, no update
+ 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;
+ }
+ $template->param( LoginDeskname => $desk->desk_name );
+ $template->param( LoginDeskid => $desk->desk_id );
+ $session->param( desk_name => $desk->desk_name );
+ $session->param( desk_id => $desk->desk_id );
+ $session->flush();
+ push @updated, {
+ updated_desk => 1,
+ old_desk => $old_desk_name,
+ };
+ }
+ if ( defined($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 : '' );
+ push @updated,
+ {
+ updated_register => 1,
+ old_register => $old_register_name
+ };
+ }
+ $session->flush();
} else {
$branch = $userenv_branch; # fallback value
+ $desk_id = $userenv_desk;
}
$template->param(updated => \@updated) if (scalar @updated);
foreach ($query->param()) {
$_ 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};
$template->param(
referer => $referer,
branch => $branch,
+ desk_id => $desk_id,
recycle_loop=> \@recycle_loop,
);