Bug 22037: (QA follow-up) Implement use of CHARGES_GUARANTEES
[koha-ffzg.git] / C4 / SIP / ILS / Patron.pm
index 3d9de0d..96ec74a 100644 (file)
@@ -22,7 +22,6 @@ use C4::Context;
 use C4::Koha;
 use C4::Members;
 use C4::Reserves;
-use C4::Items qw( GetItemnumbersForBiblio);
 use C4::Auth qw(checkpw);
 
 use Koha::Items;
@@ -66,8 +65,12 @@ sub new {
     $dob and $dob =~ s/-//g;    # YYYYMMDD
     my $dexpiry     = $kp->{dateexpiry};
     $dexpiry and $dexpiry =~ s/-//g;    # YYYYMMDD
-    my $fines_amount = $patron->account->balance;
+
+    my $fines_amount = $flags->{CHARGES}->{amount}; # This "amount" is the negative balance or the one of the guarantees
     $fines_amount = ($fines_amount and $fines_amount > 0) ? $fines_amount : 0;
+    my $guarantees_fines_amount = $flags->{CHARGES_GUARANTEES} ? $flags->{CHARGES_GUARANTEES}->{amount} : 0;
+    $fines_amount += $guarantees_fines_amount;
+
     my $fee_limit = _fee_limit();
     my $fine_blocked = $fines_amount > $fee_limit;
     my $circ_blocked =( C4::Context->preference('OverduesBlockCirc') ne "noblock" &&  defined $flags->{ODUES}->{itemlist} ) ? 1 : 0;
@@ -131,7 +134,14 @@ sub new {
 
     # FIXME: populate fine_items recall_items
     $ilspatron{unavail_holds} = _get_outstanding_holds($kp->{borrowernumber});
-    $ilspatron{items} = $patron->pending_checkouts->unblessed;
+
+    my $pending_checkouts = $patron->pending_checkouts;
+    my @barcodes;
+    while ( my $c = $pending_checkouts->next ) {
+        push @barcodes, { barcode => $c->item->barcode };
+    }
+    $ilspatron{items} = \@barcodes;
+
     $self = \%ilspatron;
     $debug and warn Dumper($self);
     syslog("LOG_DEBUG", "new ILS::Patron(%s): found patron '%s'", $patron_id,$self->{id});
@@ -242,7 +252,7 @@ sub fee_amount {
     if ( $self->{fines} ) {
         return $self->{fines};
     }
-    return;
+    return 0;
 }
 
 sub fines_amount {
@@ -491,7 +501,7 @@ sub _get_outstanding_holds {
             # We need to return a barcode for the biblio so the client
             # can request the biblio info
             my $items = $hold->biblio->items;
-            $item = $items->count ? $item->next : undef;
+            $item = $items->count ? $items->next : undef;
         }
         my $unblessed_hold = $hold->unblessed;
 
@@ -621,7 +631,6 @@ __END__
 | contactname         | mediumtext   | YES  |     | NULL    |                |
 | contactfirstname    | text         | YES  |     | NULL    |                |
 | contacttitle        | text         | YES  |     | NULL    |                |
-| guarantorid         | int(11)      | YES  | MUL | NULL    |                |
 | borrowernotes       | mediumtext   | YES  |     | NULL    |                |
 | relationship        | varchar(100) | YES  |     | NULL    |                |
 | ethnicity           | varchar(50)  | YES  |     | NULL    |                |