@@ -, +, @@ --- C4/Circulation.pm | 11 +++++++++++ C4/Members.pm | 6 ++++-- Koha/Checkout.pm | 15 +++++++++++++++ .../prog/en/modules/catalogue/issuehistory.tt | 10 ++++++++++ .../prog/en/modules/members/readingrec.tt | 6 ++++++ 5 files changed, 46 insertions(+), 2 deletions(-) --- a/C4/Circulation.pm +++ a/C4/Circulation.pm @@ -1520,6 +1520,17 @@ sub AddIssue { auto_renew => $auto_renew ? 1 : 0, }; + # Get ID of logged in user. if called from a batch job, + # no user session exists and C4::Context->userenv() returns + # the scalar '0'. Only do this is the syspref says so + if ( C4::Context->preference('RecordIssuer') ) { + my $userenv = C4::Context->userenv(); + my $usernumber = (ref($userenv) eq 'HASH') ? $userenv->{'number'} : undef; + if ($usernumber) { + $issue_attributes->{issuer} = $usernumber; + } + } + # In the case that the borrower has an on-site checkout # and SwitchOnSiteCheckouts is enabled this converts it to a regular checkout $issue = Koha::Checkouts->find( { itemnumber => $item_object->itemnumber } ); --- a/C4/Members.pm +++ a/C4/Members.pm @@ -276,16 +276,18 @@ sub GetAllIssues { 'SELECT *, issues.timestamp as issuestimestamp, issues.renewals AS renewals,items.renewals AS totalrenewals,items.timestamp AS itemstimestamp FROM issues LEFT JOIN items on items.itemnumber=issues.itemnumber + LEFT JOIN borrowers on borrowers.borrowernumber=issues.issuer LEFT JOIN biblio ON items.biblionumber=biblio.biblionumber LEFT JOIN biblioitems ON items.biblioitemnumber=biblioitems.biblioitemnumber - WHERE borrowernumber=? + WHERE issues.borrowernumber=? UNION ALL SELECT *, old_issues.timestamp as issuestimestamp, old_issues.renewals AS renewals,items.renewals AS totalrenewals,items.timestamp AS itemstimestamp FROM old_issues LEFT JOIN items on items.itemnumber=old_issues.itemnumber + LEFT JOIN borrowers on borrowers.borrowernumber=old_issues.issuer LEFT JOIN biblio ON items.biblionumber=biblio.biblionumber LEFT JOIN biblioitems ON items.biblioitemnumber=biblioitems.biblioitemnumber - WHERE borrowernumber=? AND old_issues.itemnumber IS NOT NULL + WHERE old_issues.borrowernumber=? AND old_issues.itemnumber IS NOT NULL order by ' . $order; if ($limit) { $query .= " limit $limit"; --- a/Koha/Checkout.pm +++ a/Koha/Checkout.pm @@ -106,6 +106,20 @@ sub patron { return Koha::Patron->_new_from_dbic( $patron_rs ); } +=head3 issued_by + +my $issued_by = $checkout->issued_by + +Return the patron by whom the checkout was done + +=cut + +sub issued_by { + my ( $self ) = @_; + my $issued_by_rs = $self->_result->issuer; + return Koha::Patron->_new_from_dbic( $issued_by_rs ); +} + =head3 to_api_mapping This method returns the mapping for representing a Koha::Checkout object @@ -117,6 +131,7 @@ sub to_api_mapping { return { issue_id => 'checkout_id', borrowernumber => 'patron_id', + issuer => 'issuer_id', itemnumber => 'item_id', date_due => 'due_date', branchcode => 'library_id', --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/issuehistory.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/issuehistory.tt @@ -37,6 +37,9 @@ [% END %] Barcode Checked out from + [% IF Koha.Preference('RecordIssuer') %] + Checked out by + [% END %] Renewed Checkout on Due date @@ -63,6 +66,13 @@ [% ELSE %]   [% END %] + [% IF Koha.Preference('RecordIssuer') %] + [% IF checkout.issuer %] + + [% checkout.issued_by.firstname | html %] [% checkout.issued_by.surname | html %] + + [% END %] + [% END %] [% IF checkout.renewals %] Yes[% IF checkout.lastreneweddate %], last on: [% checkout.lastreneweddate |$KohaDates with_hours => 1 %] [% END %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/readingrec.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/members/readingrec.tt @@ -58,6 +58,9 @@ Number of renewals Checked out on Checked out from + [% IF Koha.Preference('RecordIssuer') %] + Checked out by + [% END %] Date due Return date @@ -94,6 +97,9 @@ [% issue.issuedate |$KohaDates with_hours => 1 %] [% Branches.GetName( issue.branchcode ) | html %] + [% IF Koha.Preference('RecordIssuer') %] + [% issue.firstname | html %] [% issue.surname | html %] + [% END %] [% IF issue.date_due %] [% issue.date_due |$KohaDates with_hours => 1 %] --