# Borrowers part of the query
my $bquery = '';
for (my $i = 0; $i < @borrowernumbers; $i++) {
- $bquery .= ' borrowernumber = ?';
+ $bquery .= ' issues.borrowernumber = ?';
if ($i < $#borrowernumbers ) {
$bquery .= ' OR';
}
biblioitems.volumedesc,
biblioitems.lccn,
biblioitems.url,
+ borrowers.firstname,
+ borrowers.surname,
+ borrowers.cardnumber,
issues.timestamp AS timestamp,
issues.renewals AS renewals,
issues.borrowernumber AS borrowernumber,
LEFT JOIN items ON items.itemnumber = issues.itemnumber
LEFT JOIN biblio ON items.biblionumber = biblio.biblionumber
LEFT JOIN biblioitems ON items.biblioitemnumber = biblioitems.biblioitemnumber
+ LEFT JOIN borrowers ON issues.borrowernumber = borrowers.borrowernumber
WHERE
$bquery
ORDER BY issues.issuedate"
sub checkoverdues {
my $borrowernumber = shift or return;
+ # don't select biblioitems.marc or biblioitems.marcxml... too slow on large systems
my $sth = C4::Context->dbh->prepare(
- "SELECT * FROM issues
+ "SELECT biblio.*, items.*, issues.*,
+ biblioitems.volume,
+ bibliotiems.number,
+ biblioitems.itemtype,
+ biblioitems.isbn,
+ biblioitems.issn,
+ biblioitems.publicationyear,
+ biblioitems.publishercode,
+ biblioitems.volumedate,
+ biblioitems.volumedesc,
+ biblioitems.collectiontitle,
+ biblioitems.collectionissn,
+ biblioitems.collectionvolume,
+ biblioitems.editionstatement,
+ biblioitems.editionresponsibility,
+ biblioitems.illus,
+ biblioitems.pages,
+ biblioitems.notes,
+ biblioitems.size,
+ biblioitems.place,
+ biblioitems.lccn,
+ biblioitems.url,
+ biblioitems.cn_source,
+ biblioitems.cn_class,
+ biblioitems.cn_item,
+ biblioitems.cn_suffix,
+ biblioitems.cn_sort,
+ biblioitems.totalissues
+ FROM issues
LEFT JOIN items ON issues.itemnumber = items.itemnumber
LEFT JOIN biblio ON items.biblionumber = biblio.biblionumber
LEFT JOIN biblioitems ON items.biblioitemnumber = biblioitems.biblioitemnumber
foreach my $it ( @$issueslist ) {
my $itemtypeinfo = getitemtypeinfo( (C4::Context->preference('item-level_itypes')) ? $it->{'itype'} : $it->{'itemtype'} );
- # Getting borrower details
- my $memberdetails = GetMemberDetails($it->{'borrowernumber'});
- $it->{'borrowername'} = $memberdetails->{'firstname'} . " " . $memberdetails->{'surname'};
- $it->{'cardnumber'} = $memberdetails->{'cardnumber'};
# 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->{'itemnumber'}, $it->{'borrowernumber'}
);
$it->{'charge'} = sprintf("%.2f", $it->{'charge'});
my ($can_renew, $can_renew_error) = CanBookBeRenewed(
- $borrower->{'borrowernumber'},$it->{'itemnumber'}
+ $it->{'borrowernumber'},$it->{'itemnumber'}
);
$it->{"renew_error_${can_renew_error}"} = 1 if defined $can_renew_error;
my ( $restype, $reserves ) = CheckReserves( $it->{'itemnumber'} );
<td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% todayissue.biblionumber %]&type=intra"><strong>[% todayissue.title |html %]</strong></a>[% IF ( todayissue.author ) %], by [% todayissue.author %][% END %][% IF ( todayissue.itemnotes ) %]- <span class="circ-hlt">[% todayissue.itemnotes %]</span>[% END %] <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% todayissue.biblionumber %]&itemnumber=[% todayissue.itemnumber %]#item[% todayissue.itemnumber %]">[% todayissue.barcode %]</a></td>
<td>[% UNLESS ( noItemTypeImages ) %] [% IF ( todayissue.itemtype_image ) %]<img src="[% todayissue.itemtype_image %]" alt="" />[% END %][% END %][% todayissue.itemtype %]</td>
<td>[% todayissue.checkoutdate %]</td>
- [% IF ( todayissue.multiple_borrowers ) %]<td>[% todayissue.borrowername %]</td>[% END %]
+ [% IF ( todayissue.multiple_borrowers ) %]<td>[% todayissue.firstname %] [% todayissue.surname %]</td>[% END %]
<td>[% todayissue.issuingbranchname %]</td>
<td>[% todayissue.itemcallnumber %]</td>
<td>[% todayissue.charge %]</td>
[% previssue.itemtype %]
</td>
<td>[% previssue.displaydate %]</td>
- [% IF ( previssue.multiple_borrowers ) %]<td>[% previssue.borrowername %]</td>[% END %]
+ [% IF ( previssue.multiple_borrowers ) %]<td>[% previssue.firstname %] [% previssue.surname %]</td>[% END %]
<td>[% previssue.issuingbranchname %]</td>
<td>[% previssue.itemcallnumber %]</td>
<td>[% previssue.charge %]</td>
<td>[% relissue.issuingbranchname %]</td>
<td>[% relissue.itemcallnumber %]</td>
<td>[% relissue.charge %]</td>
- <td>[% relissue.replacementprice %]</td><td><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% relissue.borrowernumber %]">[% relissue.borrowername %] ([% relissue.cardnumber %])</a></td>
+ <td>[% relissue.replacementprice %]</td><td><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% relissue.borrowernumber %]">[% relissue.firstname %] [% relissue.surname %] ([% relissue.cardnumber %])</a></td>
</tr>
[% END %] <!-- /loop relissues -->
<!-- /if relissues -->[% END %]
<td>[% relprevissue.displaydate %]</td>
<td>[% relprevissue.issuingbranchname %]</td>
<td>[% relprevissue.itemcallnumber %]</td>
- [% IF ( relprevissue.multiple_borrowers ) %]<td>[% relprevissue.borrowername %]</td>[% END %]
+ [% IF ( relprevissue.multiple_borrowers ) %]<td>[% relprevissue.firstname %] [% relprevissue.surname %]</td>[% END %]
<td>[% relprevissue.charge %]</td>
<td>[% relprevissue.replacementprice %]</td>
- <td><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% relprevissue.borrowernumber %]">[% relprevissue.borrowername %] ([% relprevissue.cardnumber %])</a></td>
+ <td><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% relprevissue.borrowernumber %]">[% relprevissue.firstname %] [% relprevissue.surname %] ([% relprevissue.cardnumber %])</a></td>
</tr>
<!-- /loop relprevissue -->[% END %]
<td>[% relissueloo.itemcallnumber %]</td>
<td>[% relissueloo.charge %]</td>
<td>[% relissueloo.replacementprice %]</td>
- <td><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% relissueloo.borrowernumber %]">[% relissueloo.borrowername %] ([% relissueloo.cardnumber %])</a></td>
+ <td><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% relissueloo.borrowernumber %]">[% relissueloo.firstname %] [% relissueloo.surname %] ([% relissueloo.cardnumber %])</a></td>
</tr>
[% END %]
</tbody>
my $localissue;
for ( my $i = 0 ; $i < $issuecount ; $i++ ) {
- # Getting borrower details
- my $memberdetails = GetMemberDetails($issue->[$i]{'borrowernumber'});
- $issue->[$i]{'borrowername'} = $memberdetails->{'firstname'} . " " . $memberdetails->{'surname'};
- $issue->[$i]{'cardnumber'} = $memberdetails->{'cardnumber'};
my $datedue = $issue->[$i]{'date_due'};
my $issuedate = $issue->[$i]{'issuedate'};
$issue->[$i]{'date_due'} = C4::Dates->new($issue->[$i]{'date_due'}, 'iso')->output('syspref');
#find the charge for an item
my ( $charge, $itemtype ) =
- GetIssuingCharges( $issue->[$i]{'itemnumber'}, $borrowernumber );
+ GetIssuingCharges( $issue->[$i]{'itemnumber'}, $issue->[$i]{'borrowernumber'} );
my $itemtypeinfo = getitemtypeinfo($itemtype);
$row{'itemtype_description'} = $itemtypeinfo->{description};
$row{'charge'} = sprintf( "%.2f", $charge );
- my ( $renewokay,$renewerror ) = CanBookBeRenewed( $borrowernumber, $issue->[$i]{'itemnumber'}, $override_limit );
+ my ( $renewokay,$renewerror ) = CanBookBeRenewed( $issue->[$i]{'borrowernumber'}, $issue->[$i]{'itemnumber'}, $override_limit );
$row{'norenew'} = !$renewokay;
$row{'can_confirm'} = ( !$renewokay && $renewerror ne 'on_reserve' );
$row{"norenew_reason_$renewerror"} = 1 if $renewerror;