Bug 19813: Make MarcItemFieldsToOrder handle non-existing tags
[koha.git] / acqui / z3950_search.pl
index 9cfd6b3..59f9f36 100755 (executable)
@@ -29,11 +29,12 @@ use C4::Context;
 use C4::Breeding;
 use C4::Koha;
 
-use Koha::Acquisition::Bookseller;
+use Koha::Acquisition::Booksellers;
+use Koha::BiblioFrameworks;
 
 my $input           = new CGI;
 my $biblionumber    = $input->param('biblionumber')||0;
-my $frameworkcode   = $input->param('frameworkcode')||'';
+my $frameworkcode   = $input->param('frameworkcode') || q{};
 my $title           = $input->param('title');
 my $author          = $input->param('author');
 my $isbn            = $input->param('isbn');
@@ -50,20 +51,9 @@ my $page            = $input->param('current_page') || 1;
 $page               = $input->param('goto_page') if $input->param('changepage_goto');
 
 # get framework list
-my $frameworks = getframeworks;
-my @frameworkcodeloop;
-foreach my $thisframeworkcode ( keys %$frameworks ) {
-    my %row = (
-        value         => $thisframeworkcode,
-        frameworktext => $frameworks->{$thisframeworkcode}->{'frameworktext'},
-    );
-    if ( $row{'value'} eq $frameworkcode){
-        $row{'active'} = 'true';
-    }
-    push @frameworkcodeloop, \%row;
-}
+my $frameworks = Koha::BiblioFrameworks->search({}, { order_by => ['frameworktext'] });
 
-my $vendor = Koha::Acquisition::Bookseller->fetch({ id => $booksellerid });
+my $vendor = Koha::Acquisition::Booksellers->find( $booksellerid );
 
 my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
     {
@@ -75,10 +65,10 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
 );
 $template->param(
         frameworkcode => $frameworkcode,
-        frameworkcodeloop => \@frameworkcodeloop,
+        frameworks   => $frameworks,
         booksellerid => $booksellerid,
         basketno     => $basketno,
-        name         => $vendor->{'name'},
+        name         => $vendor->name,
         isbn         => $isbn,
         issn         => $issn,
         lccn         => $lccn,
@@ -98,7 +88,9 @@ if ( $op ne "do_search" ) {
             recordtype => 'biblio',
             servertype => ['zed', 'sru'],
         },
-        { result_class => 'DBIx::Class::ResultClass::HashRefInflator' },
+        {   result_class => 'DBIx::Class::ResultClass::HashRefInflator',
+            order_by     => ['rank', 'servername'],
+        },
     );
     $template->param(
         serverloop   => [ $rs->all ],
@@ -108,7 +100,7 @@ if ( $op ne "do_search" ) {
     exit;
 }
 
-my @id = $input->param('id');
+my @id = $input->multi_param('id');
 if (@id==0) {
     $template->param( emptyserverlist => 1 );
     output_html_with_http_headers $input, $cookie, $template->output;