LP#1296937: move the $force_bc parameter of ->charged_items() to an implementation...
authorGalen Charlton <gmc@esilibrary.com>
Tue, 20 May 2014 17:09:08 +0000 (10:09 -0700)
committerJeff Godin <jgodin@tadl.org>
Wed, 28 May 2014 20:22:50 +0000 (16:22 -0400)
Argubably, the $force_bc parameter of OpenILS::SIP::Patron->charged_items()
method exists solely as an implementation convenience for the renew-all
code.  Consequently, this patch removes the $force_bc parameter from the
public interface for charged_items() and spins it off into a new
implementation method.

This patch should be applied at the same time that a reversion of
SIPServer commit c97d64412bc is applied.  Note that a user who upgrades
SIPServer without upgrading Evergreen to a version that contains this
patch will end up in a situation where the code that counts active
loans for the patron information response will fetch the loans using
$force_bc set to true; this works only by coincidence.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Jeff Godin <jgodin@tadl.org>
Open-ILS/src/perlmods/lib/OpenILS/SIP/Patron.pm
Open-ILS/src/perlmods/lib/OpenILS/SIP/Transaction/RenewAll.pm

index 7e998f8..69232f1 100644 (file)
@@ -739,8 +739,15 @@ sub __circ_to_title {
         $e->retrieve_asset_copy($circ->target_copy) );
 }
 
-# force_bc -- return barcode data regardless of msg64_summary_datatype
 sub charged_items {
+    my ($self, $start, $end, $ids_only) = shift;
+    return $self->charged_items_impl($start, $end, undef, $ids_only);
+}
+
+# implementation method
+# force_bc -- return barcode data regardless of msg64_summary_datatype;
+#             this is used by the renew-all code
+sub charged_items_impl {
     my ($self, $start, $end, $force_bc, $ids_only) = shift;
 
     $self->__patron_items_info();
index 675d6ad..ed762a9 100644 (file)
@@ -31,7 +31,7 @@ sub do_renew_all {
     my $self = shift;
     my $sip = shift;
 
-    my $barcodes = $self->patron->charged_items(undef, undef, 1);
+    my $barcodes = $self->patron->charged_items_impl(undef, undef, 1);
 
     syslog('LOG_INFO', "OILS: RenewalAll for user ".
         $self->patron->{id} ." and items [@$barcodes]");