Fix for Bug 4946 - hold warning needs rewording

This patch improves the phrasing of several messages by
breaking the message variable into distinct parts for more
natural-sounding warnings when:

- Checking out an item on hold for another patron
- Checking out an item which is waiting for another patron
- Checking out an item which is checked out to another patron
- Checking out an item which is checked out to this patron
- Checking out to a patron who has too many checked out

I would appreciate special attention to my changes to the
TooMany function in Circulation.pm to make sure I handled
it correctly.

Signed-off-by: Nicole Engard <nengard@bywatersolutions.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
This commit is contained in:
Owen Leonard 2010-12-15 21:30:38 -05:00 committed by Chris Cormack
parent 9c17e9305a
commit 324991fefd
4 changed files with 37 additions and 17 deletions

View file

@ -31,6 +31,7 @@ use C4::Dates;
use C4::Calendar;
use C4::Accounts;
use C4::ItemCirculationAlertPreference;
use C4::Dates qw(format_date);
use C4::Message;
use C4::Debug;
use Date::Calc qw(
@ -421,7 +422,7 @@ sub TooMany {
my $max_loans_allowed = $issuing_rule->{'maxissueqty'};
if ($current_loan_count >= $max_loans_allowed) {
return "$current_loan_count / $max_loans_allowed";
return ($current_loan_count, $max_loans_allowed);
}
}
@ -449,7 +450,7 @@ sub TooMany {
my $max_loans_allowed = $branch_borrower_circ_rule->{maxissueqty};
if ($current_loan_count >= $max_loans_allowed) {
return "$current_loan_count / $max_loans_allowed";
return ($current_loan_count, $max_loans_allowed);
}
}
@ -761,12 +762,16 @@ sub CanBookBeIssued {
#
# JB34 CHECKS IF BORROWERS DONT HAVE ISSUE TOO MANY BOOKS
#
my $toomany = TooMany( $borrower, $item->{biblionumber}, $item );
# if TooMany return / 0, then the user has no permission to check out this book
if ($toomany =~ /\/ 0/) {
my ($current_loan_count, $max_loans_allowed) = TooMany( $borrower, $item->{biblionumber}, $item );
# if TooMany max_loans_allowed returns 0 the user doesn't have permission to check out this book
if ($max_loans_allowed eq 0) {
$needsconfirmation{PATRON_CANT} = 1;
} else {
$needsconfirmation{TOO_MANY} = $toomany if $toomany;
if($max_loans_allowed){
$needsconfirmation{TOO_MANY} = 1;
$needsconfirmation{current_loan_count} = $current_loan_count;
$needsconfirmation{max_loans_allowed} = $max_loans_allowed;
}
}
#
@ -849,8 +854,11 @@ sub CanBookBeIssued {
my $currborinfo = C4::Members::GetMemberDetails( $issue->{borrowernumber} );
# warn "=>.$currborinfo->{'firstname'} $currborinfo->{'surname'} ($currborinfo->{'cardnumber'})";
$needsconfirmation{ISSUED_TO_ANOTHER} =
"$currborinfo->{'reservedate'} : $currborinfo->{'firstname'} $currborinfo->{'surname'} ($currborinfo->{'cardnumber'})";
$needsconfirmation{ISSUED_TO_ANOTHER} = 1;
$needsconfirmation{issued_firstname} = $currborinfo->{'firstname'};
$needsconfirmation{issued_surname} = $currborinfo->{'surname'};
$needsconfirmation{issued_cardnumber} = $currborinfo->{'cardnumber'};
$needsconfirmation{issued_borrowernumber} = $currborinfo->{'borrowernumber'};
}
# See if the item is on reserve.
@ -864,13 +872,23 @@ sub CanBookBeIssued {
{
# The item is on reserve and waiting, but has been
# reserved by some other patron.
$needsconfirmation{RESERVE_WAITING} =
"$resborrower->{'firstname'} $resborrower->{'surname'} ($resborrower->{'cardnumber'}, $branchname)";
$needsconfirmation{RESERVE_WAITING} = 1;
$needsconfirmation{'resfirstname'} = $resborrower->{'firstname'};
$needsconfirmation{'ressurname'} = $resborrower->{'surname'};
$needsconfirmation{'rescardnumber'} = $resborrower->{'cardnumber'};
$needsconfirmation{'resborrowernumber'} = $resborrower->{'borrowernumber'};
$needsconfirmation{'resbranchname'} = $branchname;
$needsconfirmation{'reswaitingdate'} = format_date($res->{'waitingdate'});
}
elsif ( $restype eq "Reserved" ) {
# The item is on reserve for someone else.
$needsconfirmation{RESERVED} =
"$res->{'reservedate'} : $resborrower->{'firstname'} $resborrower->{'surname'} ($resborrower->{'cardnumber'})";
$needsconfirmation{RESERVED} = 1;
$needsconfirmation{'resfirstname'} = $resborrower->{'firstname'};
$needsconfirmation{'ressurname'} = $resborrower->{'surname'};
$needsconfirmation{'rescardnumber'} = $resborrower->{'cardnumber'};
$needsconfirmation{'resborrowernumber'} = $resborrower->{'borrowernumber'};
$needsconfirmation{'resbranchname'} = $branchname;
$needsconfirmation{'resreservedate'} = format_date($res->{'reservedate'});
}
}
return ( \%issuingimpossible, \%needsconfirmation );

View file

@ -1612,6 +1612,7 @@ sub _Findgroupreserve {
SELECT reserves.biblionumber AS biblionumber,
reserves.borrowernumber AS borrowernumber,
reserves.reservedate AS reservedate,
reserves.waitingdate AS waitingdate,
reserves.branchcode AS branchcode,
reserves.cancellationdate AS cancellationdate,
reserves.found AS found,

View file

@ -302,6 +302,7 @@ if ($barcode) {
$template->param(
$needsconfirmation => $$question{$needsconfirmation},
getTitleMessageIteminfo => $getmessageiteminfo->{'title'},
getBarcodeMessageIteminfo => $getmessageiteminfo->{'barcode'},
NEEDSCONFIRMATION => 1
);
$confirm_required = 1;

View file

@ -203,23 +203,23 @@ function refocus(calendar) {
<!-- /TMPL_IF -->
<!-- TMPL_IF NAME="RENEW_ISSUE" -->
<li>Item is currently checked out to this patron. Renew?</li>
<li>Item <i><!-- TMPL_VAR NAME="getTitleMessageIteminfo" --></i> (<!-- TMPL_VAR NAME="getBarcodeMessageIteminfo" -->) is currently checked out to this patron. Renew?</li>
<!-- /TMPL_IF -->
<!-- TMPL_IF NAME="RESERVE_WAITING" -->
<li>Item is consigned for <!-- TMPL_VAR NAME="RESERVE_WAITING" --></li>
<li>Item <i><!-- TMPL_VAR NAME="getTitleMessageIteminfo" --></i> (<!-- TMPL_VAR NAME="getBarcodeMessageIteminfo" -->) has been waiting for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR NAME="resborrowernumber" -->"><!-- TMPL_VAR NAME="resfirstname" --> <!-- TMPL_VAR NAME="ressurname" --></a> (<!-- TMPL_VAR NAME="rescardnumber" -->) at <!-- TMPL_VAR NAME="resbranchname" --> since <!-- TMPL_VAR NAME="reswaitingdate" --></li>
<!-- /TMPL_IF -->
<!-- TMPL_IF NAME="RESERVED" -->
<li>Item is on hold for <!-- TMPL_VAR NAME="RESERVED" --></li>
<li>Item <i><!-- TMPL_VAR NAME="getTitleMessageIteminfo" --></i> (<!-- TMPL_VAR NAME="getBarcodeMessageIteminfo" -->) has been on hold for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR NAME="resborrowernumber" -->"><!-- TMPL_VAR NAME="resfirstname" --> <!-- TMPL_VAR NAME="ressurname" --></a> (<!-- TMPL_VAR NAME="rescardnumber" -->) at <!-- TMPL_VAR NAME="resbranchname" --> since <!-- TMPL_VAR NAME="resreservedate" --></li>
<!-- /TMPL_IF -->
<!-- TMPL_IF NAME="ISSUED_TO_ANOTHER" -->
<li>Item ( <!-- TMPL_VAR NAME="getTitleMessageIteminfo" --> ) checked out to <!-- TMPL_VAR NAME="ISSUED_TO_ANOTHER" -->. Check in and check out?</li>
<li>Item <i><!-- TMPL_VAR NAME="getTitleMessageIteminfo" --></i> (<!-- TMPL_VAR NAME="getBarcodeMessageIteminfo" -->) is checked out to <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR NAME="issued_borrowernumber" -->"><!-- TMPL_VAR NAME="issued_firstname" --> <!-- TMPL_VAR NAME="issued_surname" --></a> (<!-- TMPL_VAR NAME="issued_cardnumber" -->). Check in and check out?</li>
<!-- /TMPL_IF -->
<!-- TMPL_IF NAME="TOO_MANY" -->
<li>Too many checked out (already checked out / max : <!-- TMPL_VAR name="TOO_MANY" -->)</li>
<li>Too many checked out. <!-- TMPL_VAR NAME="current_loan_count" --> checked out, only <!-- TMPL_VAR NAME="max_loans_allowed" --> are allowed.</li>
<!-- /TMPL_IF -->
<!-- TMPL_IF NAME="BORRNOTSAMEBRANCH" -->