-my $errorstring='';
-for my $itemnumber ( @items ) {
- my ($status,$error) = CanBookBeRenewed( $borrowernumber, $itemnumber );
- if ( $status == 1 && $opacrenew == 1 ) {
- my $renewalbranch = C4::Context->preference('OpacRenewalBranch');
- my $branchcode;
- if ($renewalbranch eq 'itemhomebranch'){
- my $item = GetItem($itemnumber);
- $branchcode=$item->{'homebranch'};
- }
- elsif ($renewalbranch eq 'patronhomebranch'){
- my $borrower = GetMemberDetails($borrowernumber);
- $branchcode = $borrower->{'branchcode'};
- }
- elsif ($renewalbranch eq 'checkoutbranch'){
- my $issue = GetOpenIssue($itemnumber);
- $branchcode = $issue->{'branchcode'};
- }
- elsif ($renewalbranch eq 'NULL'){
- $branchcode='';
- }
- else {
- $branchcode='OPACRenew'
- }
- AddRenewal( $borrowernumber, $itemnumber, $branchcode);
- }
- else {
- $errorstring .= $error ."|";
+my $errorstring = q{};
+my $renewed = q{};
+
+my $patron = Koha::Patrons->find( $borrowernumber );
+
+if ( $patron->category->effective_BlockExpiredPatronOpacActions
+ && $patron->is_expired )
+{
+ $errorstring = 'card_expired';
+}
+else {
+ my @renewed;
+ for my $itemnumber (@items) {
+ my ( $status, $error ) =
+ CanBookBeRenewed( $borrowernumber, $itemnumber );
+ if ( $status == 1 && $opacrenew == 1 ) {
+ my $renewalbranch = C4::Context->preference('OpacRenewalBranch');
+ my $branchcode;
+ if ( $renewalbranch eq 'itemhomebranch' ) {
+ my $item = GetItem($itemnumber);
+ $branchcode = $item->{'homebranch'};
+ }
+ elsif ( $renewalbranch eq 'patronhomebranch' ) {
+ $branchcode = Koha::Patrons->find( $borrowernumber )->branchcode;
+ }
+ elsif ( $renewalbranch eq 'checkoutbranch' ) {
+ my $issue = GetOpenIssue($itemnumber);
+ $branchcode = $issue->{'branchcode'};
+ }
+ elsif ( $renewalbranch eq 'NULL' ) {
+ $branchcode = '';
+ }
+ else {
+ $branchcode = 'OPACRenew';
+ }
+ AddRenewal( $borrowernumber, $itemnumber, $branchcode, undef, undef );
+ push( @renewed, $itemnumber );
+ }
+ else {
+ $errorstring .= $error . "|";
+ }