From 164db2833e8fb746d50540ae286e0fef97a83a41 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Sun, 6 Nov 2016 19:41:47 +0000 Subject: [PATCH] Bug 17560: Add a message when a patron checking in using the self checkout Sponsored-by: Cheshire Libraries Signed-off-by: Josef Moravec Signed-off-by: Marcel de Rooy Signed-off-by: Kyle M Hall --- .../bootstrap/en/modules/sco/sco-main.tt | 3 +++ opac/sco/sco-main.pl | 23 ++++++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt index d97c5f1c61..ad5bb8fae0 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt @@ -167,6 +167,9 @@ [% IF ( validuser ) %]
You are logged in as [% borrowername %].
[% INCLUDE 'opac-note.inc' %] + [% IF patron_has_hold_fee %] +
You have been charged for collecting this item.
+ [% END %] [% END %] [% IF ( nouser ) %] diff --git a/opac/sco/sco-main.pl b/opac/sco/sco-main.pl index fadb63395a..e4c77e030f 100755 --- a/opac/sco/sco-main.pl +++ b/opac/sco/sco-main.pl @@ -44,6 +44,7 @@ use C4::Output; use C4::Members; use C4::Biblio; use C4::Items; +use Koha::DateUtils qw( dt_from_string ); use Koha::Acquisition::Currencies; use Koha::Patron::Images; use Koha::Patron::Messages; @@ -199,13 +200,23 @@ elsif ( $op eq "checkout" ) { } } else { if ( $confirmed || $issuenoconfirm ) { # we'll want to call getpatroninfo again to get updated issues. - # warn "issuing book?"; + my $hold_existed; + if ( C4::Context->preference('HoldFeeMode') eq 'any_time_is_collected' ) { + # There is no easy way to know if the patron has been charged for this item. + # So we check if a hold existed for this item before the check in + my $item = Koha::Items->find({ barcode => $barcode }); + $hold_existed = Koha::Holds->search({ -or => { 'biblionumber' => $item->biblionumber, 'itemnumber' => $item->itemnumber}})->count; + } AddIssue( $borrower, $barcode ); - # ($borrower, $flags) = getpatroninformation(undef,undef, $patronid); - # $template->param( - # patronid => $patronid, - # validuser => 1, - # ); + + if ( $hold_existed ) { + my $dtf = Koha::Database->new->schema->storage->datetime_parser; + $template->param( + # If the hold existed before the check in, let's confirm that the charge line exists + # Note that this should not be needed but since we do not have proper exception handling here we do it this way + patron_has_hold_fee => Koha::Account::Lines->search({ borrowernumber => $borrower->{borrowernumber}, accounttype => 'Res', date => $dtf->format_date( dt_from_string ) })->count, + ); + } } else { $confirm_required = 1; #warn "issue confirmation"; -- 2.39.5