Bug 24380: Unit Test
authorKyle M Hall <kyle@bywatersolutions.com>
Wed, 22 Jan 2020 19:01:14 +0000 (14:01 -0500)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Wed, 15 Apr 2020 11:28:27 +0000 (12:28 +0100)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

t/db_dependent/Circulation/Returns.t

index f93ff66..74ac815 100644 (file)
@@ -17,7 +17,7 @@
 
 use Modern::Perl;
 
-use Test::More tests => 6;
+use Test::More tests => 7;
 use Test::MockModule;
 use Test::Warn;
 
@@ -399,4 +399,44 @@ subtest 'BranchTransferLimitsType' => sub {
     is( $doreturn, 1, 'AddReturn should have checkin the item if BranchTransferLimitsType=itemtype');
 };
 
+subtest 'Backdated returns should reduce fine if needed' => sub {
+    plan tests => 1;
+
+    t::lib::Mocks::mock_preference( "CalculateFinesOnReturn", 0 );
+
+    my $biblio = $builder->build_object( { class => 'Koha::Biblios' } );
+    my $item = $builder->build_object(
+        {
+            class  => 'Koha::Items',
+            value  => {
+                biblionumber => $biblio->biblionumber,
+                notforloan => 0,
+                itemlost   => 0,
+                withdrawn  => 0,
+        }
+    }
+    );
+    my $patron = $builder->build_object({class => 'Koha::Patrons'});
+    my $checkout = AddIssue( $patron->unblessed, $item->barcode );
+    my $fine = Koha::Account::Line->new({
+        issue_id => $checkout->id,
+        borrowernumber => $patron->id,
+        itemnumber => $item->id,
+        date => dt_from_string(),
+        amount => 100,
+        amountoutstanding => 100,
+        debit_type_code => 'OVERDUE',
+        status => 'UNRETURNED',
+        timestamp => dt_from_string(),
+        manager_id => undef,
+        interface => 'cli',
+        branchcode => $patron->branchcode,
+    })->store();
+
+    my ( $doreturn, $messages, $issue ) = AddReturn($item->barcode, undef, undef, dt_from_string('1999-01-01') );
+
+    $fine->discard_changes;
+    is( $fine->amountoutstanding, '0.000000', "Fine was reduced correctly with a backdated return" );
+};
+
 $schema->storage->txn_rollback;