|
Lines 25-30
use base qw( Template::Plugin );
Link Here
|
| 25 |
|
25 |
|
| 26 |
use C4::Koha; |
26 |
use C4::Koha; |
| 27 |
use C4::Context; |
27 |
use C4::Context; |
|
|
28 |
use Koha::Caches; |
| 28 |
use Koha::Libraries; |
29 |
use Koha::Libraries; |
| 29 |
|
30 |
|
| 30 |
sub GetName { |
31 |
sub GetName { |
|
Lines 105-110
sub pickup_locations {
Link Here
|
| 105 |
my $selected = $params->{selected}; |
106 |
my $selected = $params->{selected}; |
| 106 |
my @libraries; |
107 |
my @libraries; |
| 107 |
|
108 |
|
|
|
109 |
my $cache = Koha::Caches->get_instance(); |
| 110 |
my $cache_key; |
| 111 |
|
| 108 |
if(defined $search_params->{item} || defined $search_params->{biblio}) { |
112 |
if(defined $search_params->{item} || defined $search_params->{biblio}) { |
| 109 |
my $item = $search_params->{'item'}; |
113 |
my $item = $search_params->{'item'}; |
| 110 |
my $biblio = $search_params->{'biblio'}; |
114 |
my $biblio = $search_params->{'biblio'}; |
|
Lines 117-138
sub pickup_locations {
Link Here
|
| 117 |
if ($item) { |
121 |
if ($item) { |
| 118 |
$item = Koha::Items->find($item) |
122 |
$item = Koha::Items->find($item) |
| 119 |
unless ref($item) eq 'Koha::Item'; |
123 |
unless ref($item) eq 'Koha::Item'; |
| 120 |
@libraries = @{ $item->pickup_locations( { patron => $patron } ) } |
124 |
|
| 121 |
if defined $item; |
125 |
if ( defined $item ) { |
|
|
126 |
$cache_key = "I" . $item->homebranch . "-" . $patron->branchcode; |
| 127 |
my $result = $cache->get_from_cache($cache_key); |
| 128 |
if ( $result ) { |
| 129 |
@libraries = @{$result}; |
| 130 |
} else { |
| 131 |
@libraries = @{ $item->pickup_locations( { patron => $patron } ) }; |
| 132 |
@libraries = map { $_->unblessed } @libraries; |
| 133 |
} |
| 134 |
} |
| 122 |
} |
135 |
} |
| 123 |
elsif ($biblio) { |
136 |
elsif ($biblio) { |
| 124 |
$biblio = Koha::Biblios->find($biblio) |
137 |
$biblio = Koha::Biblios->find($biblio) |
| 125 |
unless ref($biblio) eq 'Koha::Biblio'; |
138 |
unless ref($biblio) eq 'Koha::Biblio'; |
| 126 |
@libraries = @{ $biblio->pickup_locations( { patron => $patron } ) } |
139 |
|
| 127 |
if defined $biblio; |
140 |
if ( defined $biblio ) { |
|
|
141 |
$cache_key = "B" . $biblio->id . "-" . $patron->branchcode; |
| 142 |
my $result = $cache->get_from_cache($cache_key); |
| 143 |
if ( $result ) { |
| 144 |
@libraries = @{$result}; |
| 145 |
} else { |
| 146 |
@libraries = @{ $biblio->pickup_locations( { patron => $patron } ) }; |
| 147 |
@libraries = map { $_->unblessed } @libraries; |
| 148 |
} |
| 149 |
} |
| 128 |
} |
150 |
} |
| 129 |
} |
151 |
} |
| 130 |
|
152 |
|
| 131 |
@libraries = Koha::Libraries->search( { pickup_location => 1 }, |
153 |
unless ( @libraries ) { |
| 132 |
{ order_by => ['branchname'] } )->as_list |
154 |
@libraries = Koha::Libraries->search( { pickup_location => 1 }, |
| 133 |
unless @libraries; |
155 |
{ order_by => ['branchname'] } )->as_list; |
| 134 |
|
156 |
|
| 135 |
@libraries = map { $_->unblessed } @libraries; |
157 |
@libraries = map { $_->unblessed } @libraries; |
|
|
158 |
} |
| 136 |
|
159 |
|
| 137 |
for my $l (@libraries) { |
160 |
for my $l (@libraries) { |
| 138 |
if ( defined $selected and $l->{branchcode} eq $selected |
161 |
if ( defined $selected and $l->{branchcode} eq $selected |
|
Lines 144-149
sub pickup_locations {
Link Here
|
| 144 |
} |
167 |
} |
| 145 |
} |
168 |
} |
| 146 |
|
169 |
|
|
|
170 |
$cache->set_in_cache( $cache_key, \@libraries ); |
| 147 |
return \@libraries; |
171 |
return \@libraries; |
| 148 |
} |
172 |
} |
| 149 |
|
173 |
|
| 150 |
- |
|
|