Bug 31028: (follow-up) Move html_helpers into notices
[koha-ffzg.git] / pos / registers.pl
index 620b45d..7a9c3a1 100755 (executable)
@@ -19,8 +19,8 @@
 
 use Modern::Perl;
 use CGI;
-use C4::Auth;
-use C4::Output;
+use C4::Auth qw( get_template_and_user );
+use C4::Output qw( output_html_with_http_headers );
 use C4::Context;
 
 use Koha::Cash::Registers;
@@ -34,6 +34,7 @@ my ( $template, $loggedinuser, $cookie, $user_flags ) = get_template_and_user(
         query           => $input,
         type            => 'intranet',
         authnotrequired => 0,
+        flagsrequired   => { cash_management => [ 'cashup', 'anonymous_refund' ] },
     }
 );
 my $logged_in_user = Koha::Patrons->find($loggedinuser) or die "Not logged in";
@@ -55,18 +56,10 @@ else {
 
 my $op = $input->param('op') // '';
 if ( $op eq 'cashup' ) {
-    my $registerid = $input->param('registerid');
-    if ($registerid) {
-        my $register = Koha::Cash::Registers->find( { id => $registerid } );
-        $register->add_cashup(
-            {
-                manager_id => $logged_in_user->id,
-                amount     => $register->outstanding_accountlines->total
-            }
-        );
-    }
-    else {
-        for my $register ( $registers->as_list ) {
+    if ( $logged_in_user->has_permission( { cash_management => 'cashup' } ) ) {
+        my $registerid = $input->param('registerid');
+        if ($registerid) {
+            my $register = Koha::Cash::Registers->find( { id => $registerid } );
             $register->add_cashup(
                 {
                     manager_id => $logged_in_user->id,
@@ -74,6 +67,19 @@ if ( $op eq 'cashup' ) {
                 }
             );
         }
+        else {
+            for my $register ( $registers->as_list ) {
+                $register->add_cashup(
+                    {
+                        manager_id => $logged_in_user->id,
+                        amount     => $register->outstanding_accountlines->total
+                    }
+                );
+            }
+        }
+    }
+    else {
+        $template->param( error_cashup_permission => 1 );
     }
 }