From c5c43536f9d5ee8db7b31c56d03ff6ff883a90c1 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Wed, 2 Sep 2020 10:59:22 +0200 Subject: [PATCH] Bug 26350: Librarians can request discharge on behalf of patron While deploying discharges in our library we figured out that librarians need ability to request discharge document on behalf of patrons from intranet page. It was logical to add another option on Discharge patron tab. It nicely addresses Bug 16466 since it shows status of pending discharge instead of button to issue new discharge. To test: 1. apply patch 2. make sure that useDischarge is enabled in administration 3. verify that "Request new discharge" button is availabe, click on it 4. after page reload, message "Patron has pending discharge request." will appear 5. click on "Generate discharge" to approve discharge and generate pdf (this is unchanged compared to exsting workflow) --- .../prog/en/modules/members/discharge.tt | 7 +++++++ members/discharge.pl | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/discharge.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/discharge.tt index 692e4942f4..d25b059aa6 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/discharge.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/discharge.tt @@ -41,6 +41,13 @@

Patron has holds. They will be cancelled if the discharge is generated.

[% END %]
+ [% IF pending %] +

Patron has pending discharge request.

+ [% ELSIF is_discharged %] +

Patron is discharged.

+ [% ELSIF can_be_discharged %] +

+ [% END %]
diff --git a/members/discharge.pl b/members/discharge.pl index f4a70236b4..b37d2d54b5 100755 --- a/members/discharge.pl +++ b/members/discharge.pl @@ -66,8 +66,29 @@ my $can_be_discharged = Koha::Patron::Discharge::can_be_discharged({ borrowernumber => $borrowernumber }); +my $is_discharged = Koha::Patron::Discharge::is_discharged({borrowernumber => $loggedinuser}); + +my $pending = Koha::Patron::Discharge::count({ + borrowernumber => $borrowernumber, + pending => 1, +}); + +$template->param( can_be_discharged => $can_be_discharged ); +$template->param( is_discharged => $is_discharged ); +$template->param( pending => $pending ); + +if ( ! $pending and $can_be_discharged and $input->param('request') ) { + my $success = Koha::Patron::Discharge::request({ + borrowernumber => $borrowernumber, + }); + if ( $success ) { + $template->param( pending => 1 ); + } +} + # Generating discharge if needed if ( $input->param('discharge') and $can_be_discharged ) { + my $is_discharged = Koha::Patron::Discharge::is_discharged({ borrowernumber => $borrowernumber, }); -- 2.11.0