Lines 131-143
my $limit_ind_branch =
Link Here
|
131 |
&& !C4::Context->IsSuperLibrarian() |
131 |
&& !C4::Context->IsSuperLibrarian() |
132 |
&& C4::Context->userenv->{branch} ) ? 1 : 0; |
132 |
&& C4::Context->userenv->{branch} ) ? 1 : 0; |
133 |
|
133 |
|
134 |
my $branch = $query->param("branch") || ''; |
134 |
my @branch = $query->param("branch"); |
135 |
if ( C4::Context->preference("IndependentBranches") |
135 |
if ( C4::Context->preference("IndependentBranches") |
136 |
&& C4::Context->userenv |
136 |
&& C4::Context->userenv |
137 |
&& !C4::Context->IsSuperLibrarian() ) |
137 |
&& !C4::Context->IsSuperLibrarian() ) |
138 |
{ |
138 |
{ |
139 |
$branch = C4::Context->userenv->{'branch'}; |
139 |
@branch = ( C4::Context->userenv->{'branch'} ); |
140 |
} |
140 |
} |
|
|
141 |
# if stripping nonlocal items, use loggedinuser's branch if they didn't select one |
142 |
@branch = ( C4::Context->userenv->{'branch'} ) |
143 |
unless @branch; |
144 |
my %branchmap = map { $_ => 1 } @branch; # for quick lookups |
141 |
|
145 |
|
142 |
my $backupdir = C4::Context->config('backupdir'); |
146 |
my $backupdir = C4::Context->config('backupdir'); |
143 |
|
147 |
|
Lines 245-251
if ( $op eq "export" ) {
Link Here
|
245 |
itemstable => $itemstable, |
249 |
itemstable => $itemstable, |
246 |
StartingBiblionumber => $StartingBiblionumber, |
250 |
StartingBiblionumber => $StartingBiblionumber, |
247 |
EndingBiblionumber => $EndingBiblionumber, |
251 |
EndingBiblionumber => $EndingBiblionumber, |
248 |
branch => $branch, |
252 |
branch => \@branch, |
249 |
start_callnumber => $start_callnumber, |
253 |
start_callnumber => $start_callnumber, |
250 |
end_callnumber => $end_callnumber, |
254 |
end_callnumber => $end_callnumber, |
251 |
start_accession => $start_accession, |
255 |
start_accession => $start_accession, |
Lines 322-328
if ( $op eq "export" ) {
Link Here
|
322 |
# Someone is trying to mess us up |
326 |
# Someone is trying to mess us up |
323 |
exit; |
327 |
exit; |
324 |
} |
328 |
} |
325 |
|
|
|
326 |
unless (@biblionumbers) { |
329 |
unless (@biblionumbers) { |
327 |
my $sth = $dbh->prepare($sql_query); |
330 |
my $sth = $dbh->prepare($sql_query); |
328 |
$sth->execute(@sql_params); |
331 |
$sth->execute(@sql_params); |
Lines 363-376
if ( $op eq "export" ) {
Link Here
|
363 |
my ( $homebranchfield, $homebranchsubfield ) = |
366 |
my ( $homebranchfield, $homebranchsubfield ) = |
364 |
GetMarcFromKohaField( 'items.homebranch', '' ); |
367 |
GetMarcFromKohaField( 'items.homebranch', '' ); |
365 |
for my $itemfield ( $record->field($homebranchfield) ) { |
368 |
for my $itemfield ( $record->field($homebranchfield) ) { |
366 |
|
|
|
367 |
# if stripping nonlocal items, use loggedinuser's branch if they didn't select one |
368 |
$branch = C4::Context->userenv->{'branch'} |
369 |
unless $branch; |
370 |
$record->delete_field($itemfield) |
369 |
$record->delete_field($itemfield) |
371 |
if ( $dont_export_items |
370 |
if ( $dont_export_items |
372 |
|| $itemfield->subfield($homebranchsubfield) ne |
371 |
|| !$branchmap{ $itemfield->subfield( |
373 |
$branch ); |
372 |
$homebranchsubfield) } ); |
374 |
} |
373 |
} |
375 |
} |
374 |
} |
376 |
} |
375 |
} |
Lines 470-476
else {
Link Here
|
470 |
push @branchloop, |
469 |
push @branchloop, |
471 |
{ |
470 |
{ |
472 |
value => $thisbranch, |
471 |
value => $thisbranch, |
473 |
selected => $thisbranch eq $branch, |
472 |
selected => $branchmap{$thisbranch}, |
474 |
branchname => $branches->{$thisbranch}->{'branchname'}, |
473 |
branchname => $branches->{$thisbranch}->{'branchname'}, |
475 |
}; |
474 |
}; |
476 |
} |
475 |
} |
Lines 545-558
sub construct_query {
Link Here
|
545 |
my $itemstable = $params->{itemstable}; |
544 |
my $itemstable = $params->{itemstable}; |
546 |
my $StartingBiblionumber = $params->{StartingBiblionumber}; |
545 |
my $StartingBiblionumber = $params->{StartingBiblionumber}; |
547 |
my $EndingBiblionumber = $params->{EndingBiblionumber}; |
546 |
my $EndingBiblionumber = $params->{EndingBiblionumber}; |
548 |
my $branch = $params->{branch}; |
547 |
my @branch = @{ $params->{branch} }; |
549 |
my $start_callnumber = $params->{start_callnumber}; |
548 |
my $start_callnumber = $params->{start_callnumber}; |
550 |
my $end_callnumber = $params->{end_callnumber}; |
549 |
my $end_callnumber = $params->{end_callnumber}; |
551 |
my $start_accession = $params->{start_accession}; |
550 |
my $start_accession = $params->{start_accession}; |
552 |
my $end_accession = $params->{end_accession}; |
551 |
my $end_accession = $params->{end_accession}; |
553 |
my $itemtype = $params->{itemtype}; |
552 |
my $itemtype = $params->{itemtype}; |
554 |
my $items_filter = |
553 |
my $items_filter = |
555 |
$branch |
554 |
@branch |
556 |
|| $start_callnumber |
555 |
|| $start_callnumber |
557 |
|| $end_callnumber |
556 |
|| $end_callnumber |
558 |
|| $start_accession |
557 |
|| $start_accession |
Lines 574-582
sub construct_query {
Link Here
|
574 |
push @sql_params, $EndingBiblionumber; |
573 |
push @sql_params, $EndingBiblionumber; |
575 |
} |
574 |
} |
576 |
|
575 |
|
577 |
if ($branch) { |
576 |
if (@branch) { |
578 |
$sql_query .= " AND homebranch = ? "; |
577 |
$sql_query .= " AND homebranch IN (".join(',',map({'?'} @branch)).")"; |
579 |
push @sql_params, $branch; |
578 |
push @sql_params, @branch; |
580 |
} |
579 |
} |
581 |
|
580 |
|
582 |
if ($start_callnumber) { |
581 |
if ($start_callnumber) { |
583 |
- |
|
|