Bug 17829: Move GetMember to Koha::Patron
[srvgit] / members / discharge.pl
index 9c0fdef..b24c41b 100755 (executable)
@@ -36,11 +36,13 @@ 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,
@@ -49,36 +51,39 @@ my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user({
     flagsrequired   => { 'borrowers' => '*' },
 });
 
-my $borrowernumber;
-my $data;
+my $borrowernumber = $input->param('borrowernumber');
+
+unless ( C4::Context->preference('useDischarge') ) {
+   print $input->redirect("/cgi-bin/koha/circ/circulation.pl?borrowernumber=$borrowernumber&nopermission=1");
+   exit;
+}
+
 if ( $input->param('borrowernumber') ) {
     $borrowernumber = $input->param('borrowernumber');
 
     # Getting member data
-    $data = GetMember( borrowernumber => $borrowernumber );
+    my $patron = Koha::Patrons->find( $borrowernumber );
 
-    my $can_be_discharged = Koha::Borrower::Discharge::can_be_discharged({
+    my $can_be_discharged = Koha::Patron::Discharge::can_be_discharged({
         borrowernumber => $borrowernumber
     });
 
-    # Getting reserves
-    my @reserves    = GetReservesFromBorrowernumber($borrowernumber);
-    my $has_reserves = scalar(@reserves);
+    my $holds = $patron->holds;
+    my $has_reserves = $holds->count;
 
     # Generating discharge if needed
     if ( $input->param('discharge') and $can_be_discharged ) {
-        my $is_discharged = Koha::Borrower::Discharge::count({
+        my $is_discharged = Koha::Patron::Discharge::is_discharged({
             borrowernumber => $borrowernumber,
-            validated      => 1,
         });
         unless ($is_discharged) {
-            Koha::Borrower::Discharge::discharge({
+            Koha::Patron::Discharge::discharge({
                 borrowernumber => $borrowernumber
             });
         }
         eval {
-            my $pdf_path = Koha::Borrower::Discharge::generate_as_pdf(
-                { borrowernumber => $borrowernumber, branchcode => $data->{'branchcode'} } );
+            my $pdf_path = Koha::Patron::Discharge::generate_as_pdf(
+                { borrowernumber => $borrowernumber, branchcode => $patron->branchcode } );
 
             binmode(STDOUT);
             print $input->header(
@@ -99,30 +104,34 @@ if ( $input->param('borrowernumber') ) {
     }
 
     # Already generated discharges
-    my $validated_discharges = Koha::Borrower::Discharge::get_validated({
-        branchcode => $data->{'branchcode'},
+    my $validated_discharges = Koha::Patron::Discharge::get_validated({
+        borrowernumber => $borrowernumber,
     });
 
+    $template->param( picture => 1 ) if $patron->image;
+
     $template->param(
+        # FIXME The patron object should be passed to the template
         borrowernumber    => $borrowernumber,
-        biblionumber      => $data->{'biblionumber'},
-        title             => $data->{'title'},
-        initials          => $data->{'initials'},
-        surname           => $data->{'surname'},
+        title             => $patron->title,
+        initials          => $patron->initials,
+        surname           => $patron->surname,
         borrowernumber    => $borrowernumber,
-        firstname         => $data->{'firstname'},
-        cardnumber        => $data->{'cardnumber'},
-        categorycode      => $data->{'categorycode'},
-        category_type     => $data->{'category_type'},
-        categoryname      => $data->{'description'},
-        address           => $data->{'address'},
-        address2          => $data->{'address2'},
-        city              => $data->{'city'},
-        zipcode           => $data->{'zipcode'},
-        country           => $data->{'country'},
-        phone             => $data->{'phone'},
-        email             => $data->{'email'},
-        branchcode        => $data->{'branchcode'},
+        firstname         => $patron->firstname,
+        cardnumber        => $patron->cardnumber,
+        categorycode      => $patron->categorycode,
+        category_type     => $patron->category->category_type,
+        categoryname      => $patron->category->description,
+        address           => $patron->address,
+        streetnumber      => $patron->streetnumber,
+        streettype        => $patron->streettype,
+        address2          => $patron->address2,
+        city              => $patron->city,
+        zipcode           => $patron->zipcode,
+        country           => $patron->country,
+        phone             => $patron->phone,
+        email             => $patron->email,
+        branchcode        => $patron->branchcode,
         has_reserves      => $has_reserves,
         can_be_discharged => $can_be_discharged,
         validated_discharges => $validated_discharges,