Bug 20568: Move value => client_id + secret
[koha.git] / members / discharge.pl
index 466c119..db74cfc 100755 (executable)
@@ -36,102 +36,78 @@ use C4::Output;
 use C4::Members;
 use C4::Reserves;
 use C4::Letters;
-use Koha::Borrower::Discharge;
+use Koha::Patron::Discharge;
+use Koha::Patrons;
 
 use Koha::DateUtils;
 
 my $input = new CGI;
+
 my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user({
     template_name   => 'members/discharge.tt',
     query           => $input,
     type            => 'intranet',
     authnotrequired => 0,
-    flagsrequired   => { 'borrowers' => '*' },
+    flagsrequired   => { 'borrowers' => 'edit_borrowers' },
 });
 
-my $borrowernumber;
-my $data;
-if ( $input->param('borrowernumber') ) {
-    $borrowernumber = $input->param('borrowernumber');
+my $borrowernumber = $input->param('borrowernumber');
 
-    # Getting member data
-    $data = GetMember( borrowernumber => $borrowernumber );
+unless ( C4::Context->preference('useDischarge') ) {
+   print $input->redirect("/cgi-bin/koha/circ/circulation.pl?borrowernumber=$borrowernumber&nopermission=1");
+   exit;
+}
 
-    my $can_be_discharged = Koha::Borrower::Discharge::can_be_discharged({
-        borrowernumber => $borrowernumber
-    });
+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 } );
 
-    # Getting reserves
-    my @reserves    = GetReservesFromBorrowernumber($borrowernumber);
-    my $has_reserves = scalar(@reserves);
+my $can_be_discharged = Koha::Patron::Discharge::can_be_discharged({
+    borrowernumber => $borrowernumber
+});
 
-    # Generating discharge if needed
-    if ( $input->param('discharge') and $can_be_discharged ) {
-        my $is_discharged = Koha::Borrower::Discharge::is_discharged({
-            borrowernumber => $borrowernumber,
+# Generating discharge if needed
+if ( $input->param('discharge') and $can_be_discharged ) {
+    my $is_discharged = Koha::Patron::Discharge::is_discharged({
+        borrowernumber => $borrowernumber,
+    });
+    unless ($is_discharged) {
+        Koha::Patron::Discharge::discharge({
+            borrowernumber => $borrowernumber
         });
-        unless ($is_discharged) {
-            Koha::Borrower::Discharge::discharge({
-                borrowernumber => $borrowernumber
-            });
-        }
-        eval {
-            my $pdf_path = Koha::Borrower::Discharge::generate_as_pdf(
-                { borrowernumber => $borrowernumber, branchcode => $data->{'branchcode'} } );
-
-            binmode(STDOUT);
-            print $input->header(
-                -type       => 'application/pdf',
-                -charset    => 'utf-8',
-                -attachment => "discharge_$borrowernumber.pdf",
-            );
-            open my $fh, '<', $pdf_path;
-            my @lines = <$fh>;
-            close $fh;
-            print @lines;
-            exit;
-        };
-        if ( $@ ) {
-            carp $@;
-            $template->param( messages => [ {type => 'error', code => 'unable_to_generate_pdf'} ] );
-        }
     }
+    eval {
+        my $pdf_path = Koha::Patron::Discharge::generate_as_pdf(
+            { borrowernumber => $borrowernumber, branchcode => $patron->branchcode } );
+
+        binmode(STDOUT);
+        print $input->header(
+            -type       => 'application/pdf',
+            -charset    => 'utf-8',
+            -attachment => "discharge_$borrowernumber.pdf",
+        );
+        open my $fh, '<', $pdf_path;
+        my @lines = <$fh>;
+        close $fh;
+        print @lines;
+        exit;
+    };
+    if ( $@ ) {
+        carp $@;
+        $template->param( messages => [ {type => 'error', code => 'unable_to_generate_pdf'} ] );
+    }
+}
 
-    # Already generated discharges
-    my $validated_discharges = Koha::Borrower::Discharge::get_validated({
-        borrowernumber => $borrowernumber,
-    });
+# Already generated discharges
+my @validated_discharges = Koha::Patron::Discharge::get_validated({
+    borrowernumber => $borrowernumber,
+});
 
-    my ($picture, $dberror) = GetPatronImage($borrowernumber);
-    $template->param( picture => 1 ) if $picture;
-
-    $template->param(
-        borrowernumber    => $borrowernumber,
-        biblionumber      => $data->{'biblionumber'},
-        title             => $data->{'title'},
-        initials          => $data->{'initials'},
-        surname           => $data->{'surname'},
-        borrowernumber    => $borrowernumber,
-        firstname         => $data->{'firstname'},
-        cardnumber        => $data->{'cardnumber'},
-        categorycode      => $data->{'categorycode'},
-        category_type     => $data->{'category_type'},
-        categoryname      => $data->{'description'},
-        address           => $data->{'address'},
-        streetnumber      => $data->{streetnumber},
-        streettype        => $data->{streettype},
-        address2          => $data->{'address2'},
-        city              => $data->{'city'},
-        zipcode           => $data->{'zipcode'},
-        country           => $data->{'country'},
-        phone             => $data->{'phone'},
-        email             => $data->{'email'},
-        branchcode        => $data->{'branchcode'},
-        has_reserves      => $has_reserves,
-        can_be_discharged => $can_be_discharged,
-        validated_discharges => $validated_discharges,
-    );
-}
+$template->param(
+    patron => $patron,
+    can_be_discharged => $can_be_discharged,
+    validated_discharges => \@validated_discharges,
+);
 
 $template->param( dischargeview => 1, );