Bug 20629: Remove ability to 'reverse' payments
authorKyle M Hall <kyle@bywatersolutions.com>
Mon, 15 Oct 2018 12:02:31 +0000 (08:02 -0400)
committerNick Clemens <nick@bywatersolutions.com>
Tue, 6 Nov 2018 16:32:34 +0000 (16:32 +0000)
Test Plan:
1) Apply this patch
2) Note all references to reversing payments have been removed
3) Note ability to void payments remains unchanged

Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
C4/Accounts.pm
koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt
members/boraccount.pl
members/printfeercpt.pl
t/db_dependent/Accounts.t

index f03752c..60b10a2 100644 (file)
@@ -40,7 +40,6 @@ BEGIN {
       &manualinvoice
       &getnextacctno
       &chargelostitem
-      &ReversePayment
       &purge_zero_balance_fees
     );
 }
@@ -279,50 +278,21 @@ sub manualinvoice {
     return 0;
 }
 
-#FIXME: ReversePayment should be replaced with a Void Payment feature
-sub ReversePayment {
-    my ($accountlines_id) = @_;
-    my $dbh = C4::Context->dbh;
-
-    my $accountline        = Koha::Account::Lines->find($accountlines_id);
-    my $amount_outstanding = $accountline->amountoutstanding;
-
-    my $new_amountoutstanding =
-      $amount_outstanding <= 0 ? $accountline->amount * -1 : 0;
-
-    $accountline->description( $accountline->description . " Reversed -" );
-    $accountline->amountoutstanding($new_amountoutstanding);
-    $accountline->store();
-
-    my $account_offset = Koha::Account::Offset->new(
-        {
-            credit_id => $accountline->id,
-            type      => 'Reverse Payment',
-            amount    => $amount_outstanding - $new_amountoutstanding,
-        }
-    )->store();
-
-    if ( C4::Context->preference("FinesLog") ) {
-        my $manager_id = 0;
-        $manager_id = C4::Context->userenv->{'number'} if C4::Context->userenv;
+sub getcharges {
+    my ( $borrowerno, $timestamp, $accountno ) = @_;
+    my $dbh        = C4::Context->dbh;
+    my $timestamp2 = $timestamp - 1;
+    my $query      = "";
+    my $sth = $dbh->prepare(
+            "SELECT * FROM accountlines WHERE borrowernumber=? AND accountno = ?"
+          );
+    $sth->execute( $borrowerno, $accountno );
 
-        logaction(
-            "FINES", 'MODIFY',
-            $accountline->borrowernumber,
-            Dumper(
-                {
-                    action                => 'reverse_fee_payment',
-                    borrowernumber        => $accountline->borrowernumber,
-                    old_amountoutstanding => $amount_outstanding,
-                    new_amountoutstanding => $new_amountoutstanding,
-                    ,
-                    accountlines_id => $accountline->id,
-                    accountno       => $accountline->accountno,
-                    manager_id      => $manager_id,
-                }
-            )
-        );
+    my @results;
+    while ( my $data = $sth->fetchrow_hashref ) {
+        push @results,$data;
     }
+    return (@results);
 }
 
 =head2 purge_zero_balance_fees
index 44015bb..57c19b8 100644 (file)
         [% END %]
         <a href="accountline-details.pl?accountlines_id=[% account.accountlines_id | uri %]" class="btn btn-default btn-xs"><i class="fa fa-list"></i> Details</a>
         [% IF ( reverse_col) %]
-          [% IF ( account.payment || account.amount < 0 ) %]
-                [% IF account.payment %]
-                    <a href="boraccount.pl?action=reverse&amp;accountlines_id=[% account.accountlines_id | uri %]&amp;borrowernumber=[% account.borrowernumber | uri %]" class="btn btn-default btn-xs"><i class="fa fa-undo"></i> Reverse</a>
-                [% END %]
-                [% IF account.amount < 0 %]
-                    <a href="boraccount.pl?action=void&amp;accountlines_id=[% account.accountlines_id | uri %]&amp;borrowernumber=[% account.borrowernumber | uri %]" class="btn btn-default btn-xs void"><i class="fa fa-ban"></i> Void</a>
-                [% END %]
+          [% IF account.object.is_credit %]
+              <a href="boraccount.pl?action=void&amp;accountlines_id=[% account.accountlines_id | uri %]&amp;borrowernumber=[% account.borrowernumber | uri %]" class="btn btn-default btn-xs void"><i class="fa fa-ban"></i> Void</a>
           [% ELSE %]
             &nbsp;
           [% END %]
index 582264a..a36979a 100755 (executable)
@@ -60,10 +60,7 @@ unless ( $patron ) {
 
 output_and_exit_if_error( $input, $cookie, $template, { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } );
 
-if ( $action eq 'reverse' ) {
-  ReversePayment( scalar $input->param('accountlines_id') );
-}
-elsif ( $action eq 'void' ) {
+if ( $action eq 'void' ) {
     my $payment_id = scalar $input->param('accountlines_id');
     my $payment    = Koha::Account::Lines->find( $payment_id );
     $payment->void();
@@ -87,6 +84,7 @@ my @accountlines;
 while ( my $line = $accts->next ) {
     # FIXME We should pass the $accts iterator to the template and do this formatting part there
     my $accountline = $line->unblessed;
+    $accountline->{object} = $line;
     $accountline->{amount} += 0.00;
     if ($accountline->{amount} <= 0 ) {
         $accountline->{amountcredit} = 1;
index 4aa8bd0..6333330 100755 (executable)
@@ -54,10 +54,6 @@ my $logged_in_user = Koha::Patrons->find( $loggedinuser ) or die "Not logged in"
 my $patron         = Koha::Patrons->find( $borrowernumber );
 output_and_exit_if_error( $input, $cookie, $template, { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } );
 
-if ( $action eq 'print' ) {
-#  ReversePayment( $borrowernumber, $input->param('accountno') );
-}
-
 #get account details
 my $total = $patron->account->balance;
 
index 4c40012..1cbd17d 100644 (file)
@@ -44,7 +44,7 @@ can_ok( 'C4::Accounts',
         getnextacctno
         chargelostitem
         manualinvoice
-        ReversePayment
+        getcharges
         purge_zero_balance_fees )
 );