Lines 56-62
use C4::Reserves;
Link Here
|
56 |
use C4::Members; |
56 |
use C4::Members; |
57 |
use C4::Acquisition; |
57 |
use C4::Acquisition; |
58 |
use C4::Koha; |
58 |
use C4::Koha; |
59 |
use List::MoreUtils qw/any/; |
59 |
use List::MoreUtils qw( any uniq ); |
60 |
|
60 |
|
61 |
my $query = new CGI; |
61 |
my $query = new CGI; |
62 |
|
62 |
|
Lines 253-319
for ( my $tabloop = 0 ; $tabloop <= 9 ; $tabloop++ ) {
Link Here
|
253 |
my @fields = $record->fields(); |
253 |
my @fields = $record->fields(); |
254 |
my %witness |
254 |
my %witness |
255 |
; #---- stores the list of subfields used at least once, with the "meaning" of the code |
255 |
; #---- stores the list of subfields used at least once, with the "meaning" of the code |
256 |
my @big_array; |
256 |
my @item_subfield_codes; |
|
|
257 |
my @item_loop; |
257 |
foreach my $field (@fields) { |
258 |
foreach my $field (@fields) { |
258 |
next if ( $field->tag() < 10 ); |
259 |
next if ( $field->tag() < 10 ); |
259 |
next if ( ( $field->tag() eq $tag_itemnumber ) && |
260 |
next if ( ( $field->tag() eq $tag_itemnumber ) && |
260 |
( any { $field->subfield($subtag_itemnumber) eq $_ } |
261 |
( any { $field->subfield($subtag_itemnumber) eq $_ } |
261 |
@items2hide) ); |
262 |
@items2hide) ); |
262 |
my @subf = $field->subfields; |
263 |
my @subf = $field->subfields; |
263 |
my %this_row; |
264 |
my $item; |
264 |
|
265 |
|
265 |
# loop through each subfield |
266 |
# loop through each subfield |
266 |
for my $i ( 0 .. $#subf ) { |
267 |
for my $i ( 0 .. $#subf ) { |
267 |
my $sf_def = $tagslib->{ $field->tag() }->{ $subf[$i][0] }; |
268 |
my $sf_def = $tagslib->{ $field->tag() }->{ $subf[$i][0] }; |
268 |
next if ( ($sf_def->{tab}||0) != 10 ); |
269 |
next if ( ($sf_def->{tab}||0) != 10 ); |
269 |
next if ( ($sf_def->{hidden}||0) > 0 ); |
270 |
next if ( ($sf_def->{hidden}||0) > 0 ); |
|
|
271 |
push @item_subfield_codes, $subf[$i][0]; |
270 |
$witness{ $subf[$i][0] } = $sf_def->{lib}; |
272 |
$witness{ $subf[$i][0] } = $sf_def->{lib}; |
271 |
|
273 |
|
272 |
if ( $sf_def->{isurl} ) { |
274 |
if ( $sf_def->{isurl} ) { |
273 |
$this_row{ $subf[$i][0] } = "<a href=\"$subf[$i][1]\">$subf[$i][1]</a>"; |
275 |
$item->{ $subf[$i][0] } = "<a href=\"$subf[$i][1]\">$subf[$i][1]</a>"; |
274 |
} |
276 |
} |
275 |
elsif ( $sf_def->{kohafield} eq "biblioitems.isbn" ) { |
277 |
elsif ( $sf_def->{kohafield} eq "biblioitems.isbn" ) { |
276 |
$this_row{ $subf[$i][0] } = $subf[$i][1]; |
278 |
$item->{ $subf[$i][0] } = $subf[$i][1]; |
277 |
} |
279 |
} |
278 |
else { |
280 |
else { |
279 |
$this_row{ $subf[$i][0] } = GetAuthorisedValueDesc( $field->tag(), $subf[$i][0], |
281 |
$item->{ $subf[$i][0] } = GetAuthorisedValueDesc( $field->tag(), $subf[$i][0], |
280 |
$subf[$i][1], '', $tagslib, '', 'opac' ); |
282 |
$subf[$i][1], '', $tagslib, '', 'opac' ); |
281 |
} |
283 |
} |
282 |
} |
284 |
} |
283 |
if (%this_row) { |
285 |
push @item_loop, $item if $item; |
284 |
push( @big_array, \%this_row ); |
|
|
285 |
} |
286 |
} |
286 |
} |
287 |
my ( $holdingbrtagf, $holdingbrtagsubf ) = |
287 |
my ( $holdingbrtagf, $holdingbrtagsubf ) = |
288 |
&GetMarcFromKohaField( "items.holdingbranch", $itemtype ); |
288 |
&GetMarcFromKohaField( "items.holdingbranch", $itemtype ); |
289 |
@big_array = |
289 |
@item_loop = |
290 |
sort { ($a->{$holdingbrtagsubf}||'') cmp ($b->{$holdingbrtagsubf}||'') } @big_array; |
290 |
sort { ($a->{$holdingbrtagsubf}||'') cmp ($b->{$holdingbrtagsubf}||'') } @item_loop; |
291 |
|
291 |
|
292 |
#fill big_row with missing datas |
292 |
@item_subfield_codes = uniq @item_subfield_codes; |
293 |
foreach my $subfield_code ( keys(%witness) ) { |
293 |
# fill item info |
294 |
for ( my $i = 0 ; $i <= $#big_array ; $i++ ) { |
294 |
my @item_header_loop; |
295 |
$big_array[$i]{$subfield_code} = " " |
295 |
for my $subfield_code ( @item_subfield_codes ) { |
296 |
unless ( $big_array[$i]{$subfield_code} ); |
296 |
push @item_header_loop, $witness{$subfield_code}; |
297 |
} |
297 |
for my $item_data ( @item_loop ) { |
298 |
} |
298 |
$item_data->{$subfield_code} ||= " " |
299 |
|
299 |
} |
300 |
# now, construct template ! |
|
|
301 |
my @item_value_loop; |
302 |
my @header_value_loop; |
303 |
for ( my $i = 0 ; $i <= $#big_array ; $i++ ) { |
304 |
my $items_data; |
305 |
foreach my $subfield_code ( keys(%witness) ) { |
306 |
$items_data .= "<td>" . $big_array[$i]{$subfield_code} . "</td>"; |
307 |
} |
308 |
my %row_data; |
309 |
$row_data{item_value} = $items_data; |
310 |
push( @item_value_loop, \%row_data ); |
311 |
} |
312 |
|
313 |
foreach my $subfield_code ( keys(%witness) ) { |
314 |
my %header_value; |
315 |
$header_value{header_value} = $witness{$subfield_code}; |
316 |
push( @header_value_loop, \%header_value ); |
317 |
} |
300 |
} |
318 |
|
301 |
|
319 |
if(C4::Context->preference("ISBD")) { |
302 |
if(C4::Context->preference("ISBD")) { |
Lines 346-354
if (my $search_for_title = C4::Context->preference('OPACSearchForTitleIn')){
Link Here
|
346 |
} |
329 |
} |
347 |
|
330 |
|
348 |
$template->param( |
331 |
$template->param( |
349 |
item_loop => \@item_value_loop, |
332 |
item_loop => \@item_loop, |
350 |
item_header_loop => \@header_value_loop, |
333 |
item_header_loop => \@item_header_loop, |
351 |
biblionumber => $biblionumber, |
334 |
item_subfield_codes => \@item_subfield_codes, |
|
|
335 |
biblionumber => $biblionumber, |
352 |
); |
336 |
); |
353 |
|
337 |
|
354 |
output_html_with_http_headers $query, $cookie, $template->output; |
338 |
output_html_with_http_headers $query, $cookie, $template->output; |
355 |
- |
|
|