[Koha-cvs] CVS: koha/C4 SearchMarc.pm,1.13,1.14

Paul POULAIN tipaul at users.sourceforge.net
Mon May 10 11:24:16 CEST 2004


Update of /cvsroot/koha/koha/C4
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2695/C4

Modified Files:
	SearchMarc.pm 
Log Message:
Marc search ported to OPAC.
seems to work fine

Index: SearchMarc.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/SearchMarc.pm,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -r1.13 -r1.14
*** SearchMarc.pm	16 Apr 2004 07:28:22 -0000	1.13
--- SearchMarc.pm	10 May 2004 09:24:14 -0000	1.14
***************
*** 220,236 ****
  	# we have bibid list. Now, loads title and author from [offset] to [offset]+[length]
  	my $counter = $offset;
! 	$sth = $dbh->prepare("select author,title from biblio,marc_biblio where biblio.biblionumber=marc_biblio.biblionumber and bibid=?");
  	my @finalresult = ();
  	while (($counter <= $#result) && ($counter <= ($offset + $length))) {
  		$sth->execute($result[$counter]);
! 		my ($author,$title) = $sth->fetchrow;
! 		my %line;
! 		$line{bibid}=$result[$counter];
! 		$line{author}=$author;
! 		$line{title}=$title;
! 		push @finalresult, \%line;
  		$counter++;
  	}
! 
  	my $nbresults = $#result + 1;
  	return (\@finalresult, $nbresults);
--- 220,275 ----
  	# we have bibid list. Now, loads title and author from [offset] to [offset]+[length]
  	my $counter = $offset;
! 	$sth = $dbh->prepare("SELECT biblio.biblionumber,author, title, items.holdingbranch, items.itemcallnumber, bibid
! 							FROM biblio, marc_biblio left join items on items.biblionumber = biblio.biblionumber
! 							WHERE biblio.biblionumber = marc_biblio.biblionumber AND bibid = ?
! 							GROUP BY items.biblionumber, items.holdingbranch, items.itemcallnumber");
  	my @finalresult = ();
+ 	my @CNresults=();
+ 	my $oldbiblionumber=0;
+ 	my $totalitems=0;
+ 	my ($biblionumber,$author,$title,$holdingbranch, $itemcallnumber, $bibid);
+ 	my ($oldbibid, $oldauthor, $oldtitle,$oldbiblionumber);
  	while (($counter <= $#result) && ($counter <= ($offset + $length))) {
  		$sth->execute($result[$counter]);
! 		while (($biblionumber,$author,$title,$holdingbranch, $itemcallnumber, $bibid) = $sth->fetchrow) {
! # 			warn "bibid : $oldbiblionumber ($biblionumber,$author,$title,$holdingbranch, $itemcallnumber, $bibid)";
! 			# parse the result, putting holdingbranch & itemcallnumber in separate array
! 			# then author, title & 1st array in main array
! 			if ($oldbiblionumber && ($oldbiblionumber ne $biblionumber)) {
! 				my %line;
! 				$line{bibid}=$oldbibid;
! 				$line{author}=$oldauthor;
! 				$line{title}=$oldtitle;
! 				$line{totitem} = $totalitems;
! 				$line{biblionumber} = $oldbiblionumber;
! 				my @CNresults2= @CNresults;
! 				$line{CN} = \@CNresults2;
! 				@CNresults = ();
! 				push @finalresult, \%line;
! 				$totalitems=0;
! 			}
! 			$oldbibid = $bibid;
! 			$oldauthor = $author;
! 			$oldtitle = $title;
! 			$oldbiblionumber = $biblionumber;
! 			$totalitems++ if ($holdingbranch);
! 			my %lineCN;
! 			$lineCN{holdingbranch} = $holdingbranch;
! 			$lineCN{itemcallnumber} = $itemcallnumber;
! 			push @CNresults,\%lineCN;
! 		}
  		$counter++;
  	}
! # add the last line, that is not reached byt the loop / if ($oldbiblionumber...)
! 	my %line;
! 	$line{bibid}=$oldbibid;
! 	$line{author}=$oldauthor;
! 	$line{title}=$oldtitle;
! 	$line{totitem} = $totalitems;
! 	$line{biblionumber} = $oldbiblionumber;
! 	my @CNresults2= @CNresults;
! 	$line{CN} = \@CNresults2;
! 	@CNresults = ();
! 	push @finalresult, \%line;
  	my $nbresults = $#result + 1;
  	return (\@finalresult, $nbresults);





More information about the Koha-cvs mailing list