- my $biblio = $subs->{'biblionumber'};
-
- # get existing reserves .....
- my ($count,$reserves) = GetReservesFromBiblionumber($biblio);
- my $totalcount = $count;
- foreach my $res (@$reserves) {
- if ($res->{'found'} eq 'W') {
- $count--;
+ my $biblionumber = $subs->{'biblionumber'};
+ my ($count2,@bibitems) = GetBiblioItemByBiblioNumber($biblionumber);
+ my @itemresults = GetItemsInfo( $subs->{biblionumber} );
+ my $branch = $itemresults[0]->{'holdingbranch'};
+ my $branchname = Koha::Libraries->find($branch)->branchname;
+
+ if (C4::Context->preference('RoutingListAddReserves')){
+ # get existing reserves .....
+
+ my $biblio = Koha::Biblios->find( $biblionumber );
+ my $holds = $biblio->current_holds;
+ my $count = $holds->count;
+ while ( my $hold = $holds->next ) {
+ $count-- if $hold->is_waiting;
+ }
+ my $notes;
+ my $title = $subs->{'bibliotitle'};
+ for my $routing ( @routinglist ) {
+ my $sth = $dbh->prepare('SELECT * FROM reserves WHERE biblionumber = ? AND borrowernumber = ? LIMIT 1');
+ $sth->execute($biblionumber,$routing->{borrowernumber});
+ my $reserve = $sth->fetchrow_hashref;
+
+ if($routing->{borrowernumber} == $reserve->{borrowernumber}){
+ ModReserve({
+ rank => $routing->{ranking},
+ biblionumber => $biblionumber,
+ borrowernumber => $routing->{borrowernumber},
+ branchcode => $branch
+ });
+ } else {
+ AddReserve($branch,$routing->{borrowernumber},$biblionumber,\@bibitems,$routing->{ranking}, undef, undef, $notes,$title);