LP1731021 SIP fine detail fee type additions
authorBill Erickson <berickxx@gmail.com>
Mon, 13 May 2019 14:43:51 +0000 (10:43 -0400)
committerGalen Charlton <gmc@equinoxinitiative.org>
Fri, 6 Sep 2019 21:53:48 +0000 (17:53 -0400)
Adds support for specifying different fee types in the fine/fee response
based on the most recent billing type of each transaction.

Thanks to Jason Stephenson for the initial implementation.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/src/perlmods/lib/OpenILS/SIP/Patron.pm

index c9b5902..9de94b8 100644 (file)
@@ -879,6 +879,16 @@ sub fine_items {
         my $author;
         my $line;
 
+        my $fee_type;
+
+        if ($xact->last_billing_type =~ /^Lost/) {
+            $fee_type = 'LOST';
+        } elsif ($xact->last_billing_type =~ /^Overdue/) {
+            $fee_type = 'FINE';
+        } else {
+            $fee_type = 'FEE';
+        }
+
         if ($xact->xact_type eq 'circulation') {
             my $e = OpenILS::SIP->editor();
             my $circ = $e->retrieve_action_circulation([
@@ -919,18 +929,17 @@ sub fine_items {
             $line = $xact->balance_owed . " " . $xact->last_billing_type . " ";
 
             if ($xact->xact_type eq 'circulation') {
-                $line .= "$title/$author";
+                $line .= "$title / $author";
             } else {
                 $line .= $xact->last_billing_note;
             }
 
         } elsif ($AV_format eq "3m" or $AV_format eq "swyer_a") {
 
-            $line = $xact->id . ' $' . $xact->balance_owed .
-                ' "FINE" ' . $xact->last_billing_type . ' ';
+            $line = $xact->id . ' $' . $xact->balance_owed . " \"$fee_type\" ";
 
             if ($xact->xact_type eq 'circulation') {
-                $line .= "$title/$author";
+                $line .= "$title";
             } else {
                 $line .= $xact->last_billing_note;
             }
@@ -939,7 +948,7 @@ sub fine_items {
 
             $line =   "Charge-Number: " . $xact->id;
             $line .=  ", Amount-Due: "  . $xact->balance_owed;
-            $line .=  ", Fine-Type: FINE";
+            $line .=  ", Fine-Type: $fee_type";
 
             if ($xact->xact_type eq 'circulation') {
                 $line .= ", Title: $title";