|
Lines 449-456
if (C4::Context->preference("OPACShelfBrowser")) {
Link Here
|
| 449 |
my $starting_itemnumber = $query->param('shelfbrowse_itemnumber'); # || $items[0]->{itemnumber}; |
449 |
my $starting_itemnumber = $query->param('shelfbrowse_itemnumber'); # || $items[0]->{itemnumber}; |
| 450 |
$template->param( OpenOPACShelfBrowser => 1) if $starting_itemnumber; |
450 |
$template->param( OpenOPACShelfBrowser => 1) if $starting_itemnumber; |
| 451 |
# find the right cn_sort value for this item |
451 |
# find the right cn_sort value for this item |
| 452 |
my ($starting_cn_sort, $starting_homebranch, $starting_location); |
452 |
my ($starting_cn_sort, $starting_homebranch, $starting_location, $starting_ccode); |
| 453 |
my $sth_get_cn_sort = $dbh->prepare("SELECT cn_sort,homebranch,location from items where itemnumber=?"); |
453 |
my $sth_get_cn_sort = $dbh->prepare("SELECT cn_sort,homebranch,location,ccode from items where itemnumber=?"); |
| 454 |
$sth_get_cn_sort->execute($starting_itemnumber); |
454 |
$sth_get_cn_sort->execute($starting_itemnumber); |
| 455 |
while (my $result = $sth_get_cn_sort->fetchrow_hashref()) { |
455 |
while (my $result = $sth_get_cn_sort->fetchrow_hashref()) { |
| 456 |
$starting_cn_sort = $result->{'cn_sort'}; |
456 |
$starting_cn_sort = $result->{'cn_sort'}; |
|
Lines 458-463
if (C4::Context->preference("OPACShelfBrowser")) {
Link Here
|
| 458 |
$starting_homebranch->{description} = $branches->{$result->{'homebranch'}}{branchname}; |
458 |
$starting_homebranch->{description} = $branches->{$result->{'homebranch'}}{branchname}; |
| 459 |
$starting_location->{code} = $result->{'location'}; |
459 |
$starting_location->{code} = $result->{'location'}; |
| 460 |
$starting_location->{description} = GetAuthorisedValueDesc('','', $result->{'location'} ,'','','LOC', 'opac'); |
460 |
$starting_location->{description} = GetAuthorisedValueDesc('','', $result->{'location'} ,'','','LOC', 'opac'); |
|
|
461 |
$starting_ccode->{code} = $result->{'ccode'}; |
| 462 |
$starting_ccode->{description} = GetAuthorisedValueDesc('','', $result->{'ccode'} ,'','','CCODE'); |
| 461 |
|
463 |
|
| 462 |
} |
464 |
} |
| 463 |
|
465 |
|
|
Lines 465-471
if (C4::Context->preference("OPACShelfBrowser")) {
Link Here
|
| 465 |
# order by cn_sort, which should include everything we need for ordering purposes (though not |
467 |
# order by cn_sort, which should include everything we need for ordering purposes (though not |
| 466 |
# for limits, those need to be handled separately |
468 |
# for limits, those need to be handled separately |
| 467 |
my $sth_shelfbrowse_previous; |
469 |
my $sth_shelfbrowse_previous; |
| 468 |
if (defined $starting_location->{code}) { |
470 |
if (defined $starting_ccode->{code} && defined $starting_location->{code}) { |
|
|
471 |
$sth_shelfbrowse_previous = $dbh->prepare(" |
| 472 |
SELECT * |
| 473 |
FROM items |
| 474 |
WHERE |
| 475 |
((cn_sort = ? AND itemnumber < ?) OR cn_sort < ?) AND |
| 476 |
homebranch = ? AND location = ? AND ccode = ? |
| 477 |
ORDER BY cn_sort DESC, itemnumber LIMIT 3 |
| 478 |
"); |
| 479 |
$sth_shelfbrowse_previous->execute($starting_cn_sort, $starting_itemnumber, $starting_cn_sort, $starting_homebranch->{code}, $starting_location->{code}, $starting_ccode->{code}); |
| 480 |
} elsif (defined $starting_location->{code}) { |
| 469 |
$sth_shelfbrowse_previous = $dbh->prepare(" |
481 |
$sth_shelfbrowse_previous = $dbh->prepare(" |
| 470 |
SELECT * |
482 |
SELECT * |
| 471 |
FROM items |
483 |
FROM items |
|
Lines 502-508
if (C4::Context->preference("OPACShelfBrowser")) {
Link Here
|
| 502 |
|
514 |
|
| 503 |
## List of Next Items; this also intentionally catches the current item |
515 |
## List of Next Items; this also intentionally catches the current item |
| 504 |
my $sth_shelfbrowse_next; |
516 |
my $sth_shelfbrowse_next; |
| 505 |
if (defined $starting_location->{code}) { |
517 |
if (defined $starting_ccode->{code} && defined $starting_location->{code}) { |
|
|
518 |
$sth_shelfbrowse_next = $dbh->prepare(" |
| 519 |
SELECT * |
| 520 |
FROM items |
| 521 |
WHERE |
| 522 |
((cn_sort = ? AND itemnumber >= ?) OR cn_sort > ?) AND |
| 523 |
homebranch = ? AND location = ? AND ccode = ? |
| 524 |
ORDER BY cn_sort, itemnumber LIMIT 3 |
| 525 |
"); |
| 526 |
$sth_shelfbrowse_next->execute($starting_cn_sort, $starting_itemnumber, $starting_cn_sort, $starting_homebranch->{code}, $starting_location->{code}, $starting_ccode->{code}); |
| 527 |
} elsif (defined $starting_location->{code}) { |
| 506 |
$sth_shelfbrowse_next = $dbh->prepare(" |
528 |
$sth_shelfbrowse_next = $dbh->prepare(" |
| 507 |
SELECT * |
529 |
SELECT * |
| 508 |
FROM items |
530 |
FROM items |
|
Lines 544-549
if (C4::Context->preference("OPACShelfBrowser")) {
Link Here
|
| 544 |
$template->param( |
566 |
$template->param( |
| 545 |
starting_homebranch => $starting_homebranch->{description}, |
567 |
starting_homebranch => $starting_homebranch->{description}, |
| 546 |
starting_location => $starting_location->{description}, |
568 |
starting_location => $starting_location->{description}, |
|
|
569 |
starting_ccode => $starting_ccode->{description}, |
| 547 |
starting_itemnumber => $starting_itemnumber, |
570 |
starting_itemnumber => $starting_itemnumber, |
| 548 |
shelfbrowser_prev_itemnumber => (@previous_items ? $previous_items[0]->{itemnumber} : 0), |
571 |
shelfbrowser_prev_itemnumber => (@previous_items ? $previous_items[0]->{itemnumber} : 0), |
| 549 |
shelfbrowser_next_itemnumber => $shelfbrowser_next_itemnumber, |
572 |
shelfbrowser_next_itemnumber => $shelfbrowser_next_itemnumber, |
| 550 |
- |
|
|