Return amount for CREDITS, POD rework.

The main change here is to get an {amount} field for CREDITS,
not just CHARGES.  I also use a fallback to default value (5)
in case noissuescharge has been deleted or set to 0.

POD is reworked to keep the salient chunks
about patronflags in the correct section and format them for
easier reference.  Deprecated display layer code.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Henri-Damien LAURENT <henridamien.laurent@biblibre.com>
This commit is contained in:
Joe Atzberger 2009-06-19 19:32:44 -05:00 committed by Henri-Damien LAURENT
parent 66808ad2b5
commit fdf6cda577
1 changed files with 64 additions and 105 deletions

View File

@ -268,81 +268,11 @@ about the patron. Its keys act as flags :
# Patron's card was reported lost
}
Each flag has a C<message> key, giving a human-readable explanation of
the flag. If the state of a flag means that the patron should not be
If the state of a flag means that the patron should not be
allowed to borrow any more books, then it will have a C<noissues> key
with a true value.
The possible flags are:
=head3 CHARGES
=over 4
=item Shows the patron's credit or debt, if any.
=back
=head3 GNA
=over 4
=item (Gone, no address.) Set if the patron has left without giving a
forwarding address.
=back
=head3 LOST
=over 4
=item Set if the patron's card has been reported as lost.
=back
=head3 DBARRED
=over 4
=item Set if the patron has been debarred.
=back
=head3 NOTES
=over 4
=item Any additional notes about the patron.
=back
=head3 ODUES
=over 4
=item Set if the patron has overdue items. This flag has several keys:
C<$flags-E<gt>{ODUES}{itemlist}> is a reference-to-array listing the
overdue items. Its elements are references-to-hash, each describing an
overdue item. The keys are selected fields from the issues, biblio,
biblioitems, and items tables of the Koha database.
C<$flags-E<gt>{ODUES}{itemlist}> is a string giving a text listing of
the overdue items, one per line.
=back
=head3 WAITING
=over 4
=item Set if any items that the patron has reserved are available.
C<$flags-E<gt>{WAITING}{itemlist}> is a reference-to-array listing the
available items. Each element is a reference-to-hash whose keys are
fields from the reserves table of the Koha database.
=back
See patronflags for more details.
C<$borrower-E<gt>{authflags}> is a hash giving more detailed information
about the top-level permissions flags set for the borrower. For example,
@ -398,37 +328,66 @@ sub GetMemberDetails {
=head2 patronflags
Not exported
NOTE!: If you change this function, be sure to update the POD for
&GetMemberDetails.
$flags = &patronflags($patron);
$flags->{CHARGES}
{message} Message showing patron's credit or debt
{noissues} Set if patron owes >$5.00
{GNA} Set if patron gone w/o address
{message} "Borrower has no valid address"
{noissues} Set.
{LOST} Set if patron's card reported lost
{message} Message to this effect
{noissues} Set.
{DBARRED} Set is patron is debarred
{message} Message to this effect
{noissues} Set.
{NOTES} Set if patron has notes
{message} Notes about patron
{ODUES} Set if patron has overdue books
{message} "Yes"
{itemlist} ref-to-array: list of overdue books
{itemlisttext} Text list of overdue items
{WAITING} Set if there are items available that the
patron reserved
{message} Message to this effect
{itemlist} ref-to-array: list of available items
This function is not exported.
The following will be set where applicable:
$flags->{CHARGES}->{amount} Amount of debt
$flags->{CHARGES}->{noissues} Set if debt amount >$5.00 (or syspref noissuescharge)
$flags->{CHARGES}->{message} Message -- deprecated
$flags->{CREDITS}->{amount} Amount of credit
$flags->{CREDITS}->{message} Message -- deprecated
$flags->{ GNA } Patron has no valid address
$flags->{ GNA }->{noissues} Set for each GNA
$flags->{ GNA }->{message} "Borrower has no valid address" -- deprecated
$flags->{ LOST } Patron's card reported lost
$flags->{ LOST }->{noissues} Set for each LOST
$flags->{ LOST }->{message} Message -- deprecated
$flags->{DBARRED} Set if patron debarred, no access
$flags->{DBARRED}->{noissues} Set for each DBARRED
$flags->{DBARRED}->{message} Message -- deprecated
$flags->{ NOTES }
$flags->{ NOTES }->{message} The note itself. NOT deprecated
$flags->{ ODUES } Set if patron has overdue books.
$flags->{ ODUES }->{message} "Yes" -- deprecated
$flags->{ ODUES }->{itemlist} ref-to-array: list of overdue books
$flags->{ ODUES }->{itemlisttext} Text list of overdue items -- deprecated
$flags->{WAITING} Set if any of patron's reserves are available
$flags->{WAITING}->{message} Message -- deprecated
$flags->{WAITING}->{itemlist} ref-to-array: list of available items
=over 4
C<$flags-E<gt>{ODUES}-E<gt>{itemlist}> is a reference-to-array listing the
overdue items. Its elements are references-to-hash, each describing an
overdue item. The keys are selected fields from the issues, biblio,
biblioitems, and items tables of the Koha database.
C<$flags-E<gt>{ODUES}-E<gt>{itemlisttext}> is a string giving a text listing of
the overdue items, one per line. Deprecated.
C<$flags-E<gt>{WAITING}-E<gt>{itemlist}> is a reference-to-array listing the
available items. Each element is a reference-to-hash whose keys are
fields from the reserves table of the Koha database.
=back
All the "message" fields that include language generated in this function are deprecated,
because such strings belong properly in the display layer.
The "message" field that comes from the DB is OK.
=cut
# TODO: use {anonymous => hashes} instead of a dozen %flaginfo
# FIXME rename this function.
sub patronflags {
my %flags;
@ -437,9 +396,9 @@ sub patronflags {
my ($amount) = GetMemberAccountRecords( $patroninformation->{'borrowernumber'});
if ( $amount > 0 ) {
my %flaginfo;
my $noissuescharge = C4::Context->preference("noissuescharge");
my $noissuescharge = C4::Context->preference("noissuescharge") || 5;
$flaginfo{'message'} = sprintf "Patron owes \$%.02f", $amount;
$flaginfo{'amount'} = sprintf "%.02f",$amount;
$flaginfo{'amount'} = sprintf "%.02f", $amount;
if ( $amount > $noissuescharge ) {
$flaginfo{'noissues'} = 1;
}
@ -448,6 +407,7 @@ sub patronflags {
elsif ( $amount < 0 ) {
my %flaginfo;
$flaginfo{'message'} = sprintf "Patron has credit of \$%.02f", -$amount;
$flaginfo{'amount'} = sprintf "%.02f", $amount;
$flags{'CREDITS'} = \%flaginfo;
}
if ( $patroninformation->{'gonenoaddress'}
@ -476,11 +436,10 @@ sub patronflags {
&& $patroninformation->{'borrowernotes'} )
{
my %flaginfo;
$flaginfo{'message'} = "$patroninformation->{'borrowernotes'}";
$flaginfo{'message'} = $patroninformation->{'borrowernotes'};
$flags{'NOTES'} = \%flaginfo;
}
my ( $odues, $itemsoverdue ) =
checkoverdues( $patroninformation->{'borrowernumber'}, $dbh );
my ( $odues, $itemsoverdue ) = checkoverdues($patroninformation->{'borrowernumber'});
if ( $odues > 0 ) {
my %flaginfo;
$flaginfo{'message'} = "Yes";
@ -489,7 +448,7 @@ sub patronflags {
@$itemsoverdue )
{
$flaginfo{'itemlisttext'} .=
"$_->{'date_due'} $_->{'barcode'} $_->{'title'} \n";
"$_->{'date_due'} $_->{'barcode'} $_->{'title'} \n"; # newline is display layer
}
$flags{'ODUES'} = \%flaginfo;
}