[Koha-patches] [PATCH] Return amount for CREDITS, POD rework.

Joe Atzberger joe.atzberger at liblime.com
Sat Jun 20 02:32:44 CEST 2009


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.
---
 C4/Members.pm |  167 +++++++++++++++++++++-----------------------------------
 1 files changed, 63 insertions(+), 104 deletions(-)

diff --git a/C4/Members.pm b/C4/Members.pm
index 4f87248..c566ed8 100644
--- a/C4/Members.pm
+++ b/C4/Members.pm
@@ -266,81 +266,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,
@@ -396,37 +326,66 @@ sub GetMemberDetails {
 
 =head2 patronflags
 
- Not exported
+ $flags = &patronflags($patron);
 
- NOTE!: If you change this function, be sure to update the POD for
- &GetMemberDetails.
+ This function is not exported.
 
- $flags = &patronflags($patron);
+ 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->{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
+ $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;
@@ -435,9 +394,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;
         }
@@ -446,6 +405,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'}
@@ -474,11 +434,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";
@@ -487,7 +446,7 @@ sub patronflags {
             @$itemsoverdue )
         {
             $flaginfo{'itemlisttext'} .=
-              "$_->{'date_due'} $_->{'barcode'} $_->{'title'} \n";
+              "$_->{'date_due'} $_->{'barcode'} $_->{'title'} \n";  # newline is display layer
         }
         $flags{'ODUES'} = \%flaginfo;
     }
-- 
1.5.6.5




More information about the Koha-patches mailing list