ffzg/recall_notices.pl: added --interval and --dedup
[koha.git] / members / mancredit.pl
index 49ab8a4..014d822 100755 (executable)
@@ -55,15 +55,14 @@ my $logged_in_user = Koha::Patrons->find($loggedinuser) or die "Not logged in";
 my $borrowernumber = $input->param('borrowernumber');
 my $patron         = Koha::Patrons->find($borrowernumber);
 
-unless ( $patron ) {
-    print $input->redirect("/cgi-bin/koha/circ/circulation.pl?borrowernumber=$borrowernumber");
-    exit;
-}
+output_and_exit_if_error( $input, $cookie, $template,
+    { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } );
+
 my $add = $input->param('add');
 
 if ($add){
 
-    die "Wrong CSRF token"
+    output_and_exit( $input, $cookie, $template, 'wrong_csrf_token' )
         unless Koha::Token->new->check_csrf( {
             session_id => scalar $input->cookie('CGISESSID'),
             token  => scalar $input->param('csrf_token'),
@@ -82,19 +81,25 @@ if ($add){
     my $amount      = $input->param('amount') || 0;
     my $type        = $input->param('type');
 
+    my $library_id = C4::Context->userenv ? C4::Context->userenv->{'branch'} : undef;
+
     $patron->account->add_credit({
         amount      => $amount,
         description => $description,
         item_id     => $item_id,
+        library_id  => $library_id,
         note        => $note,
         type        => $type,
         user_id     => $logged_in_user->id
     });
 
+    if ( C4::Context->preference('AccountAutoReconcile') ) {
+        $patron->account->reconcile_balance;
+    }
+
     print $input->redirect("/cgi-bin/koha/members/boraccount.pl?borrowernumber=$borrowernumber");
 
 } else {
-    output_and_exit_if_error( $input, $cookie, $template, { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } );
 
     if (C4::Context->preference('ExtendedPatronAttributes')) {
         my $attributes = GetBorrowerAttributes($borrowernumber);