View | Details | Raw Unified | Return to bug 8918
Collapse All | Expand All

(-)a/C4/ILSDI/Services.pm (-18 / +10 lines)
Lines 26-32 use C4::Circulation; Link Here
26
use C4::Branch;
26
use C4::Branch;
27
use C4::Accounts;
27
use C4::Accounts;
28
use C4::Biblio;
28
use C4::Biblio;
29
use C4::Reserves qw(AddReserve CancelReserve GetReservesFromBiblionumber GetReservesFromBorrowernumber CanBookBeReserved CanItemBeReserved);
29
use C4::Reserves qw(AddReserve CancelReserve GetReservesFromBiblionumber GetReservesFromBorrowernumber CanBookBeReserved CanItemBeReserved GetReserveNextRank);
30
use C4::Context;
30
use C4::Context;
31
use C4::AuthoritiesMarc;
31
use C4::AuthoritiesMarc;
32
use C4::ILSDI::Utility;
32
use C4::ILSDI::Utility;
Lines 576-593 sub RenewLoan { Link Here
576
    return $out;
576
    return $out;
577
}
577
}
578
578
579
sub _get_reserve_next_rank {
580
    my ($biblionumber) = @_;
581
582
    my ( $count, $reserves ) = GetReservesFromBiblionumber($biblionumber,1);
583
    foreach my $res (@$reserves) {
584
        $count-- if (defined $res->{found} and $res->{found} eq 'W');
585
    }
586
    my $rank = $count + 1;
587
588
    return $rank;
589
}
590
591
=head2 HoldTitle
579
=head2 HoldTitle
592
580
593
Creates, for a borrower, a biblio-level hold reserve.
581
Creates, for a borrower, a biblio-level hold reserve.
Lines 638-644 sub HoldTitle { Link Here
638
        $branch = $$borrower{branchcode};
626
        $branch = $$borrower{branchcode};
639
    }
627
    }
640
628
641
    my $rank = _get_reserve_next_rank($biblionumber);
629
    my $rank = GetReserveNextRank($biblionumber);
642
630
643
    # Add the reserve
631
    # Add the reserve
644
    #          $branch, $borrowernumber, $biblionumber, $constraint, $bibitems,  $priority, $notes, $title, $checkitem,  $found
632
    #          $branch, $borrowernumber, $biblionumber, $constraint, $bibitems,  $priority, $notes, $title, $checkitem,  $found
Lines 715-727 sub HoldItem { Link Here
715
        $branch = $$borrower{branchcode};
703
        $branch = $$borrower{branchcode};
716
    }
704
    }
717
705
718
    my $rank = _get_reserve_next_rank($biblionumber);
706
    my $rank;
719
    my $found;
707
    my $found;
720
708
721
    # Get rank and found
709
    # Get rank and found
722
    $rank = '0' unless C4::Context->preference('ReservesNeedReturns');
710
    if (C4::Context->preference('ReservesNeedReturns')) {
723
    if ( $item->{'holdingbranch'} eq $branch ) {
711
        $rank = GetReserveNextRank($biblionumber);
724
        $found = 'W' unless C4::Context->preference('ReservesNeedReturns');
712
    } else {
713
        $rank = '0';
714
        if ($item->{'holdingbranch'} eq $branch) {
715
            $found = 'W';
716
        }
725
    }
717
    }
726
718
727
    # Add the reserve
719
    # Add the reserve
(-)a/C4/Reserves.pm (-2 / +26 lines)
Lines 130-137 BEGIN { Link Here
130
        &ReserveSlip
130
        &ReserveSlip
131
        &ToggleSuspend
131
        &ToggleSuspend
132
        &SuspendAll
132
        &SuspendAll
133
134
    );
135
    @EXPORT_OK = qw(
136
        MergeHolds
137
        GetReserveNextRank
133
    );
138
    );
134
    @EXPORT_OK = qw( MergeHolds );
135
}    
139
}    
136
140
137
=head2 AddReserve
141
=head2 AddReserve
Lines 2151-2156 sub ReserveSlip { Link Here
2151
    );
2155
    );
2152
}
2156
}
2153
2157
2158
=head2 GetReserveNextRank
2159
2160
    my $next_rank = GetReserveNextRank($biblionumber);
2161
2162
Calculate the next available reseve rank for a biblionumber.
2163
2164
=cut
2165
2166
sub GetReserveNextRank {
2167
    my ($biblionumber) = @_;
2168
2169
    my ( $count, $reserves ) = GetReservesFromBiblionumber($biblionumber,1);
2170
    foreach my $res (@$reserves) {
2171
        $count-- if (defined $res->{found} and $res->{found} eq 'W');
2172
    }
2173
    my $rank = $count + 1;
2174
2175
    return $rank;
2176
}
2177
2178
2154
=head1 AUTHOR
2179
=head1 AUTHOR
2155
2180
2156
Koha Development Team <http://koha-community.org/>
2181
Koha Development Team <http://koha-community.org/>
2157
- 

Return to bug 8918