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 570-587 sub RenewLoan { Link Here
570
    return $out;
570
    return $out;
571
}
571
}
572
572
573
sub _get_reserve_next_rank {
574
    my ($biblionumber) = @_;
575
576
    my ( $count, $reserves ) = GetReservesFromBiblionumber($biblionumber,1);
577
    foreach my $res (@$reserves) {
578
        $count-- if (defined $res->{found} and $res->{found} eq 'W');
579
    }
580
    my $rank = $count + 1;
581
582
    return $rank;
583
}
584
585
=head2 HoldTitle
573
=head2 HoldTitle
586
574
587
Creates, for a borrower, a biblio-level hold reserve.
575
Creates, for a borrower, a biblio-level hold reserve.
Lines 632-638 sub HoldTitle { Link Here
632
        $branch = $$borrower{branchcode};
620
        $branch = $$borrower{branchcode};
633
    }
621
    }
634
622
635
    my $rank = _get_reserve_next_rank($biblionumber);
623
    my $rank = GetReserveNextRank($biblionumber);
636
624
637
    # Add the reserve
625
    # Add the reserve
638
    #          $branch, $borrowernumber, $biblionumber, $constraint, $bibitems,  $priority, $notes, $title, $checkitem,  $found
626
    #          $branch, $borrowernumber, $biblionumber, $constraint, $bibitems,  $priority, $notes, $title, $checkitem,  $found
Lines 709-721 sub HoldItem { Link Here
709
        $branch = $$borrower{branchcode};
697
        $branch = $$borrower{branchcode};
710
    }
698
    }
711
699
712
    my $rank = _get_reserve_next_rank($biblionumber);
700
    my $rank;
713
    my $found;
701
    my $found;
714
702
715
    # Get rank and found
703
    # Get rank and found
716
    $rank = '0' unless C4::Context->preference('ReservesNeedReturns');
704
    if (C4::Context->preference('ReservesNeedReturns')) {
717
    if ( $item->{'holdingbranch'} eq $branch ) {
705
        $rank = GetReserveNextRank($biblionumber);
718
        $found = 'W' unless C4::Context->preference('ReservesNeedReturns');
706
    } else {
707
        $rank = '0';
708
        if ($item->{'holdingbranch'} eq $branch) {
709
            $found = 'W';
710
        }
719
    }
711
    }
720
712
721
    # Add the reserve
713
    # 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 2088-2093 sub ReserveSlip { Link Here
2088
    );
2092
    );
2089
}
2093
}
2090
2094
2095
=head2 GetReserveNextRank
2096
2097
    my $next_rank = GetReserveNextRank($biblionumber);
2098
2099
Calculate the next available reseve rank for a biblionumber.
2100
2101
=cut
2102
2103
sub GetReserveNextRank {
2104
    my ($biblionumber) = @_;
2105
2106
    my ( $count, $reserves ) = GetReservesFromBiblionumber($biblionumber,1);
2107
    foreach my $res (@$reserves) {
2108
        $count-- if (defined $res->{found} and $res->{found} eq 'W');
2109
    }
2110
    my $rank = $count + 1;
2111
2112
    return $rank;
2113
}
2114
2115
2091
=head1 AUTHOR
2116
=head1 AUTHOR
2092
2117
2093
Koha Development Team <http://koha-community.org/>
2118
Koha Development Team <http://koha-community.org/>
2094
- 

Return to bug 8918