- my $issuedate = $it->{'issuedate'};
- $issuedate =~ s/-//g;
- $issuedate = substr( $issuedate, 0, 8 );
- ($it->{'charge'}, $it->{'itemtype_charge'}) = GetIssuingCharges(
- $it->{'itemnumber'}, $borrower->{'borrowernumber'}
- );
- $it->{'charge'} = sprintf("%.2f", $it->{'charge'});
- ($it->{'can_renew'}, $it->{'can_renew_error'}) = CanBookBeRenewed(
- $borrower->{'borrowernumber'},$it->{'itemnumber'}
- );
- my ($restype, $reserves) = CheckReserves($it->{'itemnumber'});
- ($restype) and $it->{'can_renew'} = 0;
-
- $it->{'dd'} = format_date($it->{'date_due'});
- my $datedue = $it->{'date_due'};
- $datedue =~ s/-//g;
- $it->{'od'} = ($datedue < $todaysdate) ? 1 : 0 ;
+ # set itemtype per item-level_itype syspref - FIXME this is an ugly hack
+ $it->{'itemtype'} = ( C4::Context->preference( 'item-level_itypes' ) ) ? $it->{'itype'} : $it->{'itemtype'};
+
+ ($it->{'charge'}, $it->{'itemtype_charge'}) = GetIssuingCharges(
+ $it->{'itemnumber'}, $borrower->{'borrowernumber'}
+ );
+ $it->{'charge'} = sprintf("%.2f", $it->{'charge'});
+ my ($can_renew, $can_renew_error) = CanBookBeRenewed(
+ $borrower->{'borrowernumber'},$it->{'itemnumber'}
+ );
+ $it->{"renew_error_${can_renew_error}"} = 1 if defined $can_renew_error;
+ my ( $restype, $reserves ) = CheckReserves( $it->{'itemnumber'} );
+ $it->{'can_renew'} = $can_renew;
+ $it->{'can_confirm'} = !$can_renew && !$restype;
+ $it->{'renew_error'} = $restype;
+
+ $it->{'dd'} = format_date($it->{'date_due'});
+ $it->{'od'} = ( $it->{'date_due'} lt $todaysdate ) ? 1 : 0 ;