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

(-)a/C4/Reserves.pm (-11 / +8 lines)
Lines 421-436 sub CanItemBeReserved { Link Here
421
         WHERE borrowernumber = ?
421
         WHERE borrowernumber = ?
422
    };
422
    };
423
423
424
    my $branchcode  = "";
424
    my $reserves_control_branch;
425
    my $branchfield = "reserves.branchcode";
425
    my $branchfield = "reserves.branchcode";
426
426
427
    if ( $controlbranch eq "ItemHomeLibrary" ) {
427
    if ( $controlbranch eq "ItemHomeLibrary" ) {
428
        $branchfield = "items.homebranch";
428
        $branchfield = "items.homebranch";
429
        $branchcode  = $item->homebranch;
429
        $reserves_control_branch  = $item->homebranch;
430
    }
430
    }
431
    elsif ( $controlbranch eq "PatronLibrary" ) {
431
    elsif ( $controlbranch eq "PatronLibrary" ) {
432
        $branchfield = "borrowers.branchcode";
432
        $branchfield = "borrowers.branchcode";
433
        $branchcode  = $borrower->{branchcode};
433
        $reserves_control_branch  = $borrower->{branchcode};
434
    }
434
    }
435
435
436
    # we retrieve rights
436
    # we retrieve rights
Lines 438-444 sub CanItemBeReserved { Link Here
438
        my $reservesallowed = Koha::CirculationRules->get_effective_rule({
438
        my $reservesallowed = Koha::CirculationRules->get_effective_rule({
439
                itemtype     => $item->effective_itemtype,
439
                itemtype     => $item->effective_itemtype,
440
                categorycode => $borrower->{categorycode},
440
                categorycode => $borrower->{categorycode},
441
                branchcode   => $branchcode,
441
                branchcode   => $reserves_control_branch,
442
                rule_name    => 'reservesallowed',
442
                rule_name    => 'reservesallowed',
443
        })
443
        })
444
    ) {
444
    ) {
Lines 452-458 sub CanItemBeReserved { Link Here
452
    my $rights = Koha::CirculationRules->get_effective_rules({
452
    my $rights = Koha::CirculationRules->get_effective_rules({
453
        categorycode => $borrower->{'categorycode'},
453
        categorycode => $borrower->{'categorycode'},
454
        itemtype     => $item->effective_itemtype,
454
        itemtype     => $item->effective_itemtype,
455
        branchcode   => $branchcode,
455
        branchcode   => $reserves_control_branch,
456
        rules        => ['holds_per_record','holds_per_day']
456
        rules        => ['holds_per_record','holds_per_day']
457
    });
457
    });
458
    my $holds_per_record = $rights->{holds_per_record} // 1;
458
    my $holds_per_record = $rights->{holds_per_record} // 1;
Lines 497-506 sub CanItemBeReserved { Link Here
497
    my $sthcount = $dbh->prepare($querycount);
497
    my $sthcount = $dbh->prepare($querycount);
498
498
499
    if ( defined $ruleitemtype ) {
499
    if ( defined $ruleitemtype ) {
500
        $sthcount->execute( $patron->borrowernumber, $branchcode, $ruleitemtype );
500
        $sthcount->execute( $patron->borrowernumber, $reserves_control_branch, $ruleitemtype );
501
    }
501
    }
502
    else {
502
    else {
503
        $sthcount->execute( $patron->borrowernumber, $branchcode );
503
        $sthcount->execute( $patron->borrowernumber, $reserves_control_branch );
504
    }
504
    }
505
505
506
    my $reservecount = "0";
506
    my $reservecount = "0";
Lines 522-528 sub CanItemBeReserved { Link Here
522
    my $rule = Koha::CirculationRules->get_effective_rule(
522
    my $rule = Koha::CirculationRules->get_effective_rule(
523
        {
523
        {
524
            categorycode => $patron->categorycode,
524
            categorycode => $patron->categorycode,
525
            branchcode   => $branchcode,
525
            branchcode   => $reserves_control_branch,
526
            rule_name    => 'max_holds',
526
            rule_name    => 'max_holds',
527
        }
527
        }
528
    );
528
    );
Lines 536-543 sub CanItemBeReserved { Link Here
536
        return { status => 'tooManyReserves', limit => $rule->rule_value} if $total_holds_count >= $rule->rule_value;
536
        return { status => 'tooManyReserves', limit => $rule->rule_value} if $total_holds_count >= $rule->rule_value;
537
    }
537
    }
538
538
539
    my $reserves_control_branch =
540
      GetReservesControlBranch( $item->unblessed(), $patron->unblessed );
541
    my $branchitemrule =
539
    my $branchitemrule =
542
      C4::Circulation::GetBranchItemRule( $reserves_control_branch, $item->effective_itemtype );
540
      C4::Circulation::GetBranchItemRule( $reserves_control_branch, $item->effective_itemtype );
543
541
544
- 

Return to bug 30085