Bug 22564: Remove references to 'Rep' accounttype
[koha-equinox.git] / Koha / Account.pm
index 120ab60..9d66e70 100644 (file)
@@ -32,6 +32,7 @@ use Koha::Patrons;
 use Koha::Account::Lines;
 use Koha::Account::Offsets;
 use Koha::DateUtils qw( dt_from_string );
+use Koha::Exceptions;
 use Koha::Exceptions::Account;
 
 =head1 NAME
@@ -86,6 +87,7 @@ sub pay {
     my $patron = Koha::Patrons->find( $self->{patron_id} );
 
     my $manager_id = $userenv ? $userenv->{number} : 0;
+    my $interface = $params ? ( $params->{interface} || C4::Context->interface ) : C4::Context->interface;
 
     my @fines_paid; # List of account lines paid on with this payment
 
@@ -106,7 +108,7 @@ sub pay {
         $fine->amountoutstanding($new_amountoutstanding)->store();
         $balance_remaining = $balance_remaining - $amount_to_pay;
 
-        if ( $fine->itemnumber && $fine->accounttype && ( $fine->accounttype eq 'Rep' || $fine->accounttype eq 'L' ) )
+        if ( $fine->itemnumber && $fine->accounttype && ( $fine->accounttype eq 'L' ) )
         {
             C4::Circulation::ReturnLostItem( $self->{patron_id}, $fine->itemnumber );
         }
@@ -135,7 +137,8 @@ sub pay {
                         manager_id            => $manager_id,
                         note                  => $note,
                     }
-                )
+                ),
+                $interface
             );
             push( @fines_paid, $fine->id );
         }
@@ -185,7 +188,8 @@ sub pay {
                         manager_id            => $manager_id,
                         note                  => $note,
                     }
-                )
+                ),
+                $interface
             );
             push( @fines_paid, $fine->id );
         }
@@ -211,6 +215,7 @@ sub pay {
             payment_type      => $payment_type,
             amountoutstanding => 0 - $balance_remaining,
             manager_id        => $manager_id,
+            interface         => $interface,
             branchcode        => $library_id,
             note              => $note,
         }
@@ -244,7 +249,8 @@ sub pay {
                     accountlines_paid => \@fines_paid,
                     manager_id        => $manager_id,
                 }
-            )
+            ),
+            $interface
         );
     }
 
@@ -289,6 +295,7 @@ my $credit_line = Koha::Account->new({ patron_id => $patron_id })->add_credit(
         description  => $description,
         note         => $note,
         user_id      => $user_id,
+        interface    => $interface,
         library_id   => $library_id,
         sip          => $sip,
         payment_type => $payment_type,
@@ -315,12 +322,19 @@ sub add_credit {
     my $description  = $params->{description} // q{};
     my $note         = $params->{note} // q{};
     my $user_id      = $params->{user_id};
+    my $interface    = $params->{interface};
     my $library_id   = $params->{library_id};
     my $sip          = $params->{sip};
     my $payment_type = $params->{payment_type};
     my $type         = $params->{type} || 'payment';
     my $item_id      = $params->{item_id};
 
+    unless ( $interface ) {
+        Koha::Exceptions::MissingParameter->throw(
+            error => 'The interface parameter is mandatory'
+        );
+    }
+
     my $schema = Koha::Database->new->schema;
 
     my $account_type = $Koha::Account::account_type_credit->{$type};
@@ -344,6 +358,7 @@ sub add_credit {
                     payment_type      => $payment_type,
                     note              => $note,
                     manager_id        => $user_id,
+                    interface         => $interface,
                     branchcode        => $library_id,
                     itemnumber        => $item_id,
                 }
@@ -381,7 +396,8 @@ sub add_credit {
                             manager_id        => $user_id,
                             branchcode        => $library_id,
                         }
-                    )
+                    ),
+                    $interface
                 );
             }
         }
@@ -400,6 +416,7 @@ my $debit_line = Koha::Account->new({ patron_id => $patron_id })->add_debit(
         description  => $description,
         note         => $note,
         user_id      => $user_id,
+        interface    => $interface,
         library_id   => $library_id,
         type         => $debit_type,
         item_id      => $item_id,
@@ -408,7 +425,7 @@ my $debit_line = Koha::Account->new({ patron_id => $patron_id })->add_debit(
 );
 
 $debit_type can be any of:
-  - fine
+  - overdue
   - lost_item
   - new_card
   - account
@@ -436,11 +453,18 @@ sub add_debit {
     my $description  = $params->{description} // q{};
     my $note         = $params->{note} // q{};
     my $user_id      = $params->{user_id};
+    my $interface    = $params->{interface};
     my $library_id   = $params->{library_id};
     my $type         = $params->{type};
     my $item_id      = $params->{item_id};
     my $issue_id     = $params->{issue_id};
 
+    unless ( $interface ) {
+        Koha::Exceptions::MissingParameter->throw(
+            error => 'The interface parameter is mandatory'
+        );
+    }
+
     my $schema = Koha::Database->new->schema;
 
     unless ( exists($Koha::Account::account_type_debit->{$type}) ) {
@@ -467,9 +491,11 @@ sub add_debit {
                     payment_type      => undef,
                     note              => $note,
                     manager_id        => $user_id,
+                    interface         => $interface,
                     itemnumber        => $item_id,
                     issue_id          => $issue_id,
                     branchcode        => $library_id,
+                    ( $type eq 'overdue' ? ( status => 'UNRETURNED' ) : ()),
                 }
             )->store();
 
@@ -496,7 +522,8 @@ sub add_debit {
                             itemnumber        => $item_id,
                             manager_id        => $user_id,
                         }
-                    )
+                    ),
+                    $interface
                 );
             }
         }
@@ -670,7 +697,7 @@ our $offset_type = {
     'processing'       => 'Processing Fee',
     'lost_item'        => 'Lost Item',
     'rent'             => 'Rental Fee',
-    'fine'             => 'Fine',
+    'overdue'          => 'OVERDUE',
     'manual_debit'     => 'Manual Debit',
     'hold_expired'     => 'Hold Expired'
 };
@@ -693,7 +720,7 @@ our $account_type_credit = {
 
 our $account_type_debit = {
     'account'       => 'A',
-    'fine'          => 'FU',
+    'overdue'       => 'OVERDUE',
     'lost_item'     => 'L',
     'new_card'      => 'N',
     'sundry'        => 'M',