From 0c47f8cb4bfdeaea0cc28e41d4cc0f058e24294a 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) Signed-off-by: Owen Leonard --- .../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..104fce41bf 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