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

(-)a/C4/Circulation.pm (-2 / +3 lines)
Lines 2417-2423 already renewed the loan. $error will contain the reason the renewal can not pro Link Here
2417
sub CanBookBeRenewed {
2417
sub CanBookBeRenewed {
2418
2418
2419
    # check renewal status
2419
    # check renewal status
2420
    my ( $borrowernumber, $itemnumber, $override_limit ) = @_;
2420
    my ( $borrowernumber, $itemnumber, $override_limit, $overdue, $overduesblockrenew ) = @_;
2421
    my $dbh       = C4::Context->dbh;
2421
    my $dbh       = C4::Context->dbh;
2422
    my $renews    = 1;
2422
    my $renews    = 1;
2423
    my $renewokay = 0;
2423
    my $renewokay = 0;
Lines 2466-2472 sub CanBookBeRenewed { Link Here
2466
    if ( my $data1 = $sthcount->fetchrow_hashref ) {
2466
    if ( my $data1 = $sthcount->fetchrow_hashref ) {
2467
        
2467
        
2468
        if ( ( $data1->{renewalsallowed} && $data1->{renewalsallowed} > $data1->{renewals} ) || $override_limit ) {
2468
        if ( ( $data1->{renewalsallowed} && $data1->{renewalsallowed} > $data1->{renewals} ) || $override_limit ) {
2469
            $renewokay = 1;
2469
            $renewokay =  ($overduesblockrenew eq 'blockitem' and $overdue and !$override_limit)? 0 : 1;
2470
            $error = 'overdue' unless $renewokay;
2470
        }
2471
        }
2471
        else {
2472
        else {
2472
			$error="too_many";
2473
			$error="too_many";
(-)a/C4/ILSDI/Services.pm (-3 / +11 lines)
Lines 555-564 sub RenewLoan { Link Here
555
    return { code => 'RecordNotFound' } unless $$item{itemnumber};
555
    return { code => 'RecordNotFound' } unless $$item{itemnumber};
556
556
557
    # Add renewal if possible
557
    # Add renewal if possible
558
    my @renewal = CanBookBeRenewed( $borrowernumber, $itemnumber );
559
    if ( $renewal[0] ) { AddRenewal( $borrowernumber, $itemnumber ); }
560
561
    my $issue = GetItemIssue($itemnumber);
558
    my $issue = GetItemIssue($itemnumber);
559
    # Check for overdue on this document
560
    my $dt_due = $issue->{'date_due'}->truncate( to => 'day' );
561
    my $dt_today = DateTime->now( time_zone => C4::Context->tz() );
562
    my $overdue = 1 if DateTime->compare( $dt_today,$dt_due  ) == 1;
563
    # Check if any of patron's documents is late
564
    my ($memberblocked) = C4::Members::IsMemberBlocked($borrowernumber);
565
    # Is renewal allowed on overdue documents ?
566
    my $overduesblockrenew = C4::Context->preference('OverduesBlockRenew');
567
    my $norenewal = 1 if ( $overduesblockrenew eq 'blockall' and $memberblocked == -1 ) or ( $overduesblockrenew eq 'blockitem' and $overdue ) or $memberblocked == 1;# last to check if patron is restricted
568
    my @renewal = $norenewal ? (0,'overdue') : CanBookBeRenewed( $borrowernumber, $itemnumber );
569
    if ( $renewal[0] ) { AddRenewal( $borrowernumber, $itemnumber ); }
562
570
563
    # Hashref building
571
    # Hashref building
564
    my $out;
572
    my $out;
(-)a/circ/circulation.pl (-3 / +9 lines)
Lines 429-434 my $displayrelissues; Link Here
429
429
430
our $totalprice = 0;
430
our $totalprice = 0;
431
431
432
# Check if any of patron's documents is late
433
my ($memberblocked) = C4::Members::IsMemberBlocked($borrowernumber);
434
# and if renewal is allowed in that case
435
my $overduesblockrenew = C4::Context->preference('OverduesBlockRenew');
436
my $norenewal = 1 if $overduesblockrenew eq 'blockall' and $memberblocked == -1;
437
$template->param( norenewal => 1 ) if $overduesblockrenew ne 'allow';
438
432
sub build_issue_data {
439
sub build_issue_data {
433
    my $issueslist = shift;
440
    my $issueslist = shift;
434
    my $relatives = shift;
441
    my $relatives = shift;
Lines 444-452 sub build_issue_data { Link Here
444
            $it->{'itemnumber'}, $it->{'borrowernumber'}
451
            $it->{'itemnumber'}, $it->{'borrowernumber'}
445
        );
452
        );
446
        $it->{'charge'} = sprintf("%.2f", $it->{'charge'});
453
        $it->{'charge'} = sprintf("%.2f", $it->{'charge'});
447
        my ($can_renew, $can_renew_error) = CanBookBeRenewed( 
454
        my ($can_renew, $can_renew_error) = $norenewal ? (0, 'overdue') : CanBookBeRenewed(
448
            $it->{'borrowernumber'},$it->{'itemnumber'}
455
        $it->{'borrowernumber'},$it->{'itemnumber'}, undef, $it->{'overdue'}, $overduesblockrenew);
449
        );
450
        $it->{"renew_error_${can_renew_error}"} = 1 if defined $can_renew_error;
456
        $it->{"renew_error_${can_renew_error}"} = 1 if defined $can_renew_error;
451
        my ( $restype, $reserves, undef ) = CheckReserves( $it->{'itemnumber'} );
457
        my ( $restype, $reserves, undef ) = CheckReserves( $it->{'itemnumber'} );
452
        $it->{'can_renew'} = $can_renew;
458
        $it->{'can_renew'} = $can_renew;
(-)a/installer/data/mysql/sysprefs.sql (+1 lines)
Lines 386-388 INSERT INTO systempreferences (variable,value,explanation,type) VALUES('OPACdidy Link Here
386
INSERT INTO systempreferences (variable,value,explanation,type) VALUES('INTRAdidyoumean',NULL,'Did you mean? configuration for the Intranet. Do not change, as this is controlled by /cgi-bin/koha/admin/didyoumean.pl.','Free');
386
INSERT INTO systempreferences (variable,value,explanation,type) VALUES('INTRAdidyoumean',NULL,'Did you mean? configuration for the Intranet. Do not change, as this is controlled by /cgi-bin/koha/admin/didyoumean.pl.','Free');
387
INSERT INTO systempreferences (variable, value, options, explanation, type) VALUES ('BlockReturnOfWithdrawnItems', '1', '0', 'If enabled, items that are marked as withdrawn cannot be returned.', 'YesNo');
387
INSERT INTO systempreferences (variable, value, options, explanation, type) VALUES ('BlockReturnOfWithdrawnItems', '1', '0', 'If enabled, items that are marked as withdrawn cannot be returned.', 'YesNo');
388
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('HoldsToPullStartDate','2','Set the default start date for the Holds to pull list to this many days ago',NULL,'Integer');
388
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('HoldsToPullStartDate','2','Set the default start date for the Holds to pull list to this many days ago',NULL,'Integer');
389
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('OverduesBlockRenew','allow','If any of patron\'s checked out documents is late, should renewal be allowed, blocked only on overdue items or blocked on whatever checked out document','allow|blockitem|blockall','Choice');
(-)a/installer/data/mysql/updatedatabase.pl (+7 lines)
Lines 6055-6060 if (C4::Context->preference("Version") < TransformToNum($DBversion)) { Link Here
6055
   SetVersion ($DBversion);
6055
   SetVersion ($DBversion);
6056
}
6056
}
6057
6057
6058
$DBversion = "3.09.00.XXX";
6059
if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
6060
    $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('OverduesBlockRenew','allow','If any of a patron\'s checked out documents is late, should renewal be allowed, blocked only on overdue items or blocked on whatever checked out document','allow|blockitem|blockall','Choice')");
6061
    print "Upgrade to $DBversion done (Add system preference BlockRenewal ))\n";
6062
    SetVersion($DBversion);
6063
}
6064
6058
=head1 FUNCTIONS
6065
=head1 FUNCTIONS
6059
6066
6060
=head2 TableExists($table)
6067
=head2 TableExists($table)
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref (+8 lines)
Lines 280-285 Circulation: Link Here
280
                  confirmation: Ask for confirmation
280
                  confirmation: Ask for confirmation
281
            - when checking out to a borrower that has overdues outstanding	    
281
            - when checking out to a borrower that has overdues outstanding	    
282
        -
282
        -
283
            - If any of a patron's checked out items are late,
284
            - pref: OverduesBlockRenew
285
              type: choice
286
              choices:
287
                  allow: allow renewing of items.
288
                  blockall: block renewing for all items.
289
                  blockitem: block renewing only for overdue items.
290
        -
283
            - On checkin route the returned item to
291
            - On checkin route the returned item to
284
            - pref: HomeOrHoldingBranchReturn
292
            - pref: HomeOrHoldingBranchReturn
285
              type: choice
293
              type: choice
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt (-2 / +10 lines)
Lines 809-815 No patron matched <span class="ex">[% message %]</span> Link Here
809
        <td><span style="padding: 0 1em;">[% IF ( todayissue.renewals ) %][% todayissue.renewals %][% ELSE %]0[% END %]</span>
809
        <td><span style="padding: 0 1em;">[% IF ( todayissue.renewals ) %][% todayissue.renewals %][% ELSE %]0[% END %]</span>
810
        [% IF ( todayissue.can_renew ) %]
810
        [% IF ( todayissue.can_renew ) %]
811
        <input type="checkbox" name="all_items[]" value="[% todayissue.itemnumber %]" checked="checked" style="display: none;" />
811
        <input type="checkbox" name="all_items[]" value="[% todayissue.itemnumber %]" checked="checked" style="display: none;" />
812
        [% IF ( todayissue.od ) %]
812
        [% IF ( todayissue.od and !previssue.renew_error_overdue ) %]
813
            <input type="checkbox" class="radio" name="items[]" value="[% todayissue.itemnumber %]" checked="checked" />
813
            <input type="checkbox" class="radio" name="items[]" value="[% todayissue.itemnumber %]" checked="checked" />
814
        [% ELSE %]
814
        [% ELSE %]
815
            <input type="checkbox" class="radio" name="items[]" value="[% todayissue.itemnumber %]" />
815
            <input type="checkbox" class="radio" name="items[]" value="[% todayissue.itemnumber %]" />
Lines 831-836 No patron matched <span class="ex">[% message %]</span> Link Here
831
                [% IF ( todayissue.renew_error_too_many ) %]
831
                [% IF ( todayissue.renew_error_too_many ) %]
832
            Not renewable
832
            Not renewable
833
                [% END %]
833
                [% END %]
834
                [% IF ( todayissue.renew_error_overdue ) %]
835
                        Renewal not allowed (overdue)
836
                [% END %]
834
            [% IF ( todayissue.can_confirm ) %]
837
            [% IF ( todayissue.can_confirm ) %]
835
                </span>
838
                </span>
836
            [% END %]
839
            [% END %]
Lines 890-896 No patron matched <span class="ex">[% message %]</span> Link Here
890
        <td><span style="padding: 0 1em;">[% IF ( previssue.renewals ) %][% previssue.renewals %][% ELSE %]0[% END %]</span>
893
        <td><span style="padding: 0 1em;">[% IF ( previssue.renewals ) %][% previssue.renewals %][% ELSE %]0[% END %]</span>
891
        [% IF ( previssue.can_renew ) %]
894
        [% IF ( previssue.can_renew ) %]
892
        <input type="checkbox" name="all_items[]" value="[% previssue.itemnumber %]" checked="checked" style="display: none;" />
895
        <input type="checkbox" name="all_items[]" value="[% previssue.itemnumber %]" checked="checked" style="display: none;" />
893
        [% IF ( previssue.od ) %]
896
        [% IF ( previssue.od and !previssue.renew_error_overdue ) %]
894
            <input type="checkbox" class="radio" name="items[]" value="[% previssue.itemnumber %]" checked="checked" />
897
            <input type="checkbox" class="radio" name="items[]" value="[% previssue.itemnumber %]" checked="checked" />
895
        [% ELSE %]
898
        [% ELSE %]
896
            <input type="checkbox" class="radio" name="items[]" value="[% previssue.itemnumber %]" />
899
            <input type="checkbox" class="radio" name="items[]" value="[% previssue.itemnumber %]" />
Lines 912-917 No patron matched <span class="ex">[% message %]</span> Link Here
912
                [% IF ( previssue.renew_error_too_many ) %]
915
                [% IF ( previssue.renew_error_too_many ) %]
913
            Not renewable
916
            Not renewable
914
                [% END %]
917
                [% END %]
918
                [% IF ( previssue.renew_error_overdue ) %]
919
                        Renewal not allowed (overdue)
920
                [% END %]
915
            [% IF ( previssue.can_confirm ) %]
921
            [% IF ( previssue.can_confirm ) %]
916
                </span>
922
                </span>
917
            [% END %]
923
            [% END %]
Lines 951-957 No patron matched <span class="ex">[% message %]</span> Link Here
951
        [% END %]
957
        [% END %]
952
        [% END %]
958
        [% END %]
953
        <input type="submit" name="renew_checked" value="Renew or Return checked items" />
959
        <input type="submit" name="renew_checked" value="Renew or Return checked items" />
960
        [% UNLESS ( norenewal ) %]
954
        <input type="submit" id="renew_all" name="renew_all" value="Renew all" />
961
        <input type="submit" id="renew_all" name="renew_all" value="Renew all" />
962
        [% END %]
955
        [% IF export_remove_fields OR export_with_csv_profile %]
963
        [% IF export_remove_fields OR export_with_csv_profile %]
956
            <br/><br/>
964
            <br/><br/>
957
            Don't export fields : <input type="text" id="export_remove_fields" name="export_remove_fields" value="[% export_remove_fields %]" title="Use for iso2709 exports" />
965
            Don't export fields : <input type="text" id="export_remove_fields" name="export_remove_fields" value="[% export_remove_fields %]" title="Use for iso2709 exports" />
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt (-1 / +6 lines)
Lines 475-481 function validate1(date) { Link Here
475
            [% IF ( issueloo.norenew ) %]
475
            [% IF ( issueloo.norenew ) %]
476
                [% IF ( issueloo.can_confirm ) %]<span class="renewals-allowed" style="display: none">
476
                [% IF ( issueloo.can_confirm ) %]<span class="renewals-allowed" style="display: none">
477
                    <input type="checkbox" name="all_items[]" value="[% issueloo.itemnumber %]" checked="checked" style="display: none;" />
477
                    <input type="checkbox" name="all_items[]" value="[% issueloo.itemnumber %]" checked="checked" style="display: none;" />
478
                    [% IF ( issueloo.od ) %]
478
                    [% IF ( issueloo.od  and !issueloo.norenew_reason_overdue ) %]
479
                        <input type="checkbox" name="items[]" value="[% issueloo.itemnumber %]" checked="checked" />
479
                        <input type="checkbox" name="items[]" value="[% issueloo.itemnumber %]" checked="checked" />
480
                    [% ELSE %]
480
                    [% ELSE %]
481
                        <input type="checkbox" name="items[]" value="[% issueloo.itemnumber %]" />
481
                        <input type="checkbox" name="items[]" value="[% issueloo.itemnumber %]" />
Lines 483-488 function validate1(date) { Link Here
483
                    </span>
483
                    </span>
484
                    <span class="renewals-disabled">
484
                    <span class="renewals-disabled">
485
                [% END %]
485
                [% END %]
486
                [% IF ( issueloo.norenew_reason_overdue ) %]
487
                    Renewal not allowed (overdue)
488
                [% END %]
486
                [% IF ( issueloo.norenew_reason_on_reserve ) %]
489
                [% IF ( issueloo.norenew_reason_on_reserve ) %]
487
                <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% issueloo.biblionumber %]">On Hold</a>
490
                <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% issueloo.biblionumber %]">On Hold</a>
488
                [% END %]
491
                [% END %]
Lines 525-531 function validate1(date) { Link Here
525
        [% END %]
528
        [% END %]
526
        [% END %]
529
        [% END %]
527
        <input type="submit" name="renew_checked" value="Renew or return checked items" />
530
        <input type="submit" name="renew_checked" value="Renew or return checked items" />
531
        [% UNLESS ( norenewal ) %]
528
        <input type="submit" id="renew_all" name="renew_all" value="Renew all" />
532
        <input type="submit" id="renew_all" name="renew_all" value="Renew all" />
533
        [% END %]
529
        </fieldset>
534
        </fieldset>
530
    [% ELSE %]<p>Patron has nothing checked out.</p>
535
    [% ELSE %]<p>Patron has nothing checked out.</p>
531
[% END %]
536
[% END %]
(-)a/koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tt (-1 / +5 lines)
Lines 185-192 $.tablesorter.addParser({ Link Here
185
                [% IF ( OpacRenewalAllowed ) %]
185
                [% IF ( OpacRenewalAllowed ) %]
186
                    <td class="renew">[% IF ( ISSUE.status ) %][% IF ( canrenew ) %]<input type="checkbox" name="item" value="[% ISSUE.itemnumber %]"/> <a href="/cgi-bin/koha/opac-renew.pl?from=opac_user&amp;item=[% ISSUE.itemnumber %]&amp;borrowernumber=[% ISSUE.borrowernumber %]">Renew</a>[% END %] <span class="renewals">([% ISSUE.renewsleft %] of [% ISSUE.renewsallowed %] renewals remaining)</span>
186
                    <td class="renew">[% IF ( ISSUE.status ) %][% IF ( canrenew ) %]<input type="checkbox" name="item" value="[% ISSUE.itemnumber %]"/> <a href="/cgi-bin/koha/opac-renew.pl?from=opac_user&amp;item=[% ISSUE.itemnumber %]&amp;borrowernumber=[% ISSUE.borrowernumber %]">Renew</a>[% END %] <span class="renewals">([% ISSUE.renewsleft %] of [% ISSUE.renewsallowed %] renewals remaining)</span>
187
                        [% ELSE %]
187
                        [% ELSE %]
188
                        [% IF ( ISSUE.norenew_overdue ) %]
189
                           Renewal not allowed <span class="renewals">(overdue on a document)</span>
190
                        [% ELSE %]
188
                        Not renewable[% IF ( ISSUE.too_many ) %] <span class="renewals">([% ISSUE.renewsleft %] of [% ISSUE.renewsallowed %] renewals remaining)</span>[% ELSE %][% IF ( ISSUE.on_reserve ) %] <span class="renewals">(On hold)</span>[% END %][% END %] 
191
                        Not renewable[% IF ( ISSUE.too_many ) %] <span class="renewals">([% ISSUE.renewsleft %] of [% ISSUE.renewsallowed %] renewals remaining)</span>[% ELSE %][% IF ( ISSUE.on_reserve ) %] <span class="renewals">(On hold)</span>[% END %][% END %] 
189
                        [% END %]</td>
192
                        [% END %][% END %]</td>
190
                [% END %]
193
                [% END %]
191
[% IF ( OPACFinesTab ) %]
194
[% IF ( OPACFinesTab ) %]
192
                <td class="fines">[% IF ( ISSUE.charges ) %]Yes[% ELSE %]No[% END %]</td>
195
                <td class="fines">[% IF ( ISSUE.charges ) %]Yes[% ELSE %]No[% END %]</td>
Lines 329-334 $.tablesorter.addParser({ Link Here
329
[% ELSIF ( OVERDUE.status ) %]
332
[% ELSIF ( OVERDUE.status ) %]
330
[% IF ( canrenew ) %]<a href="/cgi-bin/koha/opac-renew.pl?from=opac_user&amp;item=[% OVERDUE.itemnumber %]&amp;bornum=[% OVERDUE.borrowernumber %]">Renew</a>[% END %] <span class="renewals">([% OVERDUE.renewsleft %] of [% OVERDUE.renewsallowed %] renewals remaining)</span>
333
[% IF ( canrenew ) %]<a href="/cgi-bin/koha/opac-renew.pl?from=opac_user&amp;item=[% OVERDUE.itemnumber %]&amp;bornum=[% OVERDUE.borrowernumber %]">Renew</a>[% END %] <span class="renewals">([% OVERDUE.renewsleft %] of [% OVERDUE.renewsallowed %] renewals remaining)</span>
331
[% ELSIF ( OVERDUE.onreserve ) %]On hold
334
[% ELSIF ( OVERDUE.onreserve ) %]On hold
335
[% ELSIF ( OVERDUE.norenew_overdue ) %]Renewal not allowed<span class="renewals">(overdue on a document)</span>
332
[% ELSE %]No renewals left
336
[% ELSE %]No renewals left
333
[% END %]
337
[% END %]
334
</td>[% END %]
338
</td>[% END %]
(-)a/members/moremember.pl (-3 / +8 lines)
Lines 256-261 my @borrowers_with_issues; Link Here
256
my $overdues_exist = 0;
256
my $overdues_exist = 0;
257
my $totalprice = 0;
257
my $totalprice = 0;
258
258
259
# Check if any of patron's documents is late
260
my ($memberblocked)=C4::Members::IsMemberBlocked($borrowernumber);
261
# and if renewal is allowed in that case
262
my $overduesblockrenew = C4::Context->preference('OverduesBlockRenew');
263
my $norenewal = 1 if $overduesblockrenew eq 'blockall' and $memberblocked == -1;
264
$template->param( norenewal => 1 ) if $overduesblockrenew ne 'allow';
265
259
my @issuedata = build_issue_data($issue);
266
my @issuedata = build_issue_data($issue);
260
my @relissuedata = build_issue_data($relissue);
267
my @relissuedata = build_issue_data($relissue);
261
268
Lines 511-519 sub build_issue_data { Link Here
511
518
512
        $row{'charge'} = sprintf( "%.2f", $charge );
519
        $row{'charge'} = sprintf( "%.2f", $charge );
513
520
514
        my ( $renewokay, $renewerror ) =
521
        my ( $renewokay, $renewerror ) = $norenewal ? (0, 'overdue') : CanBookBeRenewed( $borrowernumber, $issue->{itemnumber}, $override_limit, $issue->{overdue}, $overduesblockrenew );
515
          CanBookBeRenewed( $borrowernumber, $issue->{itemnumber},
516
            $override_limit );
517
        $row{'norenew'} = !$renewokay;
522
        $row{'norenew'} = !$renewokay;
518
        $row{'can_confirm'} = ( !$renewokay && $renewerror ne 'on_reserve' );
523
        $row{'can_confirm'} = ( !$renewokay && $renewerror ne 'on_reserve' );
519
        $row{"norenew_reason_$renewerror"} = 1 if $renewerror;
524
        $row{"norenew_reason_$renewerror"} = 1 if $renewerror;
(-)a/opac/opac-user.pl (-2 / +9 lines)
Lines 153-158 my @overdues; Link Here
153
my @issuedat;
153
my @issuedat;
154
my $itemtypes = GetItemTypes();
154
my $itemtypes = GetItemTypes();
155
my $issues = GetPendingIssues($borrowernumber);
155
my $issues = GetPendingIssues($borrowernumber);
156
157
# Check if any of patron's documents is late
158
my ($memberblocked) = C4::Members::IsMemberBlocked($borrowernumber);
159
# and if renewal is allowed in that case
160
my $overduesblockrenew = C4::Context->preference('OverduesBlockRenew');
161
my $norenewal = 1 if $overduesblockrenew eq 'blockall' and $memberblocked == -1;
162
156
if ($issues){
163
if ($issues){
157
    foreach my $issue ( sort { $b->{date_due}->datetime() cmp $a->{date_due}->datetime() } @{$issues} ) {
164
    foreach my $issue ( sort { $b->{date_due}->datetime() cmp $a->{date_due}->datetime() } @{$issues} ) {
158
        # check for reserves
165
        # check for reserves
Lines 179-189 if ($issues){ Link Here
179
        $issue->{$publictype} = 1;
186
        $issue->{$publictype} = 1;
180
187
181
        # check if item is renewable
188
        # check if item is renewable
182
        my ($status,$renewerror) = CanBookBeRenewed( $borrowernumber, $issue->{'itemnumber'} );
189
        my ($status,$renewerror) = $norenewal ? (0, 'overdue') : CanBookBeRenewed( $borrowernumber, $issue->{'itemnumber'}, undef, $issue->{'overdue'}, $overduesblockrenew);
183
        ($issue->{'renewcount'},$issue->{'renewsallowed'},$issue->{'renewsleft'}) = GetRenewCount($borrowernumber, $issue->{'itemnumber'});
190
        ($issue->{'renewcount'},$issue->{'renewsallowed'},$issue->{'renewsleft'}) = GetRenewCount($borrowernumber, $issue->{'itemnumber'});
184
        if($status && C4::Context->preference("OpacRenewalAllowed")){
191
        if($status && C4::Context->preference("OpacRenewalAllowed")){
185
            $issue->{'status'} = $status;
192
            $issue->{'status'} = $status;
186
        }
193
        }
194
        $issue->{'norenew_overdue'} = 1 if $renewerror and $renewerror eq 'overdue';
187
        $issue->{'too_many'} = 1 if $renewerror and $renewerror eq 'too_many';
195
        $issue->{'too_many'} = 1 if $renewerror and $renewerror eq 'too_many';
188
        $issue->{'on_reserve'} = 1 if $renewerror and $renewerror eq 'on_reserve';
196
        $issue->{'on_reserve'} = 1 if $renewerror and $renewerror eq 'on_reserve';
189
197
190
- 

Return to bug 8236