ffzg/recall_notices.pl: added --interval and --dedup
[koha.git] / catalogue / moredetail.pl
index 5624240..e8736ff 100755 (executable)
@@ -60,8 +60,6 @@ if($query->cookie("holdfor")){
     );
 }
 
-my $hidepatronname = C4::Context->preference("HidePatronName");
-
 # get variables
 
 my $biblionumber=$query->param('biblionumber');
@@ -101,6 +99,9 @@ for my $itm (@all_items) {
 
 my $record=GetMarcBiblio({ biblionumber => $biblionumber });
 
+output_and_exit( $query, $cookie, $template, 'unknown_biblio')
+    unless $record;
+
 my $hostrecords;
 # adding items linked via host biblios
 my @hostitems = GetHostItemsInfo($record);
@@ -125,8 +126,8 @@ my $copynumbers =
 
 my $itemtypes = { map { $_->{itemtype} => $_ } @{ Koha::ItemTypes->search_with_localization->unblessed } };
 
-$data->{'itemtypename'} = $itemtypes->{$data->{'itemtype'}}->{'translated_description'};
-$data->{'rentalcharge'} = sprintf( "%.2f", $data->{'rentalcharge'} );
+$data->{'itemtypename'} = $itemtypes->{ $data->{'itemtype'} }->{'translated_description'}
+  if $data->{itemtype} && exists $itemtypes->{ $data->{itemtype} };
 foreach ( keys %{$data} ) {
     $template->param( "$_" => defined $data->{$_} ? $data->{$_} : '' );
 }
@@ -134,9 +135,9 @@ foreach ( keys %{$data} ) {
 ($itemnumber) and @items = (grep {$_->{'itemnumber'} == $itemnumber} @items);
 foreach my $item (@items){
     $item->{object} = Koha::Items->find( $item->{itemnumber} );
-    $item->{'collection'}              = $ccodes->{ $item->{ccode} } if ($ccodes);
-    $item->{'itype'}                   = $itemtypes->{ $item->{'itype'} }->{'translated_description'};
-    $item->{'replacementprice'}        = sprintf( "%.2f", $item->{'replacementprice'} );
+    $item->{'collection'}              = $ccodes->{ $item->{ccode} } if $ccodes && $item->{ccode} && exists $ccodes->{ $item->{ccode} };
+    $item->{'itype'}                   = $itemtypes->{ $item->{'itype'} }->{'translated_description'} if exists $itemtypes->{ $item->{'itype'} };
+    $item->{'replacementprice'}        = $item->{'replacementprice'};
     if ( defined $item->{'copynumber'} ) {
         $item->{'displaycopy'} = 1;
         if ( defined $copynumbers->{ $item->{'copynumber'} } ) {
@@ -186,25 +187,21 @@ foreach my $item (@items){
         $item->{'issue'}= 0;
     }
 
-    unless ($hidepatronname) {
-        if ( $item->{'borrowernumber'} ) {
-            my $curr_borrower = Koha::Patrons->find( $item->{borrowernumber} );
-            $item->{borrowerfirstname} = $curr_borrower->firstname;
-            $item->{borrowersurname} = $curr_borrower->surname;
-        }
+    if ( $item->{'borrowernumber'} ) {
+        my $curr_borrower = Koha::Patrons->find( $item->{borrowernumber} );
+        $item->{patron} = $curr_borrower;
     }
-
 }
 
-my $mss = Koha::MarcSubfieldStructures->search({ frameworkcode => $fw, kohafield => 'items.itemlost', authorised_value => { not => undef } });
+my $mss = Koha::MarcSubfieldStructures->search({ frameworkcode => $fw, kohafield => 'items.itemlost', authorised_value => [ -and => {'!=' => undef }, {'!=' => ''}] });
 if ( $mss->count ) {
     $template->param( itemlostloop => GetAuthorisedValues( $mss->next->authorised_value ) );
 }
-$mss = Koha::MarcSubfieldStructures->search({ frameworkcode => $fw, kohafield => 'items.damaged', authorised_value => { not => undef } });
+$mss = Koha::MarcSubfieldStructures->search({ frameworkcode => $fw, kohafield => 'items.damaged', authorised_value => [ -and => {'!=' => undef }, {'!=' => ''}] });
 if ( $mss->count ) {
     $template->param( itemdamagedloop => GetAuthorisedValues( $mss->next->authorised_value ) );
 }
-$mss = Koha::MarcSubfieldStructures->search({ frameworkcode => $fw, kohafield => 'items.withdrawn', authorised_value => { not => undef } });
+$mss = Koha::MarcSubfieldStructures->search({ frameworkcode => $fw, kohafield => 'items.withdrawn', authorised_value => [ -and => {'!=' => undef }, {'!=' => ''}] });
 if ( $mss->count ) {
     $template->param( itemwithdrawnloop => GetAuthorisedValues( $mss->next->authorised_value) );
 }
@@ -224,7 +221,6 @@ $template->param(
     itemnumber          => $itemnumber,
     z3950_search_params => C4::Search::z3950_search_args(GetBiblioData($biblionumber)),
     subtitle            => $subtitle,
-    hidepatronname      => $hidepatronname,
 );
 $template->param(ONLY_ONE => 1) if ( $itemnumber && $showncount != @items );
 $template->{'VARS'}->{'searchid'} = $query->param('searchid');