From e6e039c7c7f419717ad1817352fd3d8bee70784a Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Mon, 2 Dec 2019 14:24:04 +0100 Subject: [PATCH] Bug 24008: Display a warning message when deleting a patron with outstanding credits So far nothing is displayed if a librarian removes patron with outstanding credits. Note that outstanding debits blocks the deletion. Test plan: - Create a patron with outstanding credit - Create a patron with outstanding debits - Delete the 2 patrons => With credit - You get a warning but do not block the deletion => With debits - You get a warning message that blocks the deletion Signed-off-by: Martin Renvoize Signed-off-by: Katrin Fischer Signed-off-by: Martin Renvoize --- .../prog/en/modules/members/deletemem.tt | 12 ++++-- members/deletemem.pl | 37 +++++++------------ 2 files changed, 22 insertions(+), 27 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/deletemem.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/deletemem.tt index 74cef2af5a..9dec86c37e 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/deletemem.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/deletemem.tt @@ -19,17 +19,17 @@
[% INCLUDE 'members-toolbar.inc' %] - [% IF ( ItemsOnIssues || charges || guarantees ) %] + [% IF ItemsOnIssues || debits || is_guarantor %]

Cannot delete patron

    [% IF ( ItemsOnIssues ) %]
  • Patron has [% ItemsOnIssues | html %] item(s) checked out.
  • [% END %] - [% IF ( charges ) %] -
  • Patron has [% charges | $Price %] in fines.
  • + [% IF debits %] +
  • Patron has [% debits | $Price %] in fines.
  • [% END %] - [% IF ( guarantees ) %] + [% IF is_guarantor %]
  • Patron's record has guaranteed accounts attached.
  • [% END %]
@@ -41,6 +41,10 @@

Patron has [% ItemsOnHold | html %] hold(s). Deleting patron cancels all their holds.


[% END %]

Are you sure you want to delete the patron [% patron.firstname | html %] [% patron.surname | html %]? This cannot be undone.

+ + [% IF credits %] +

Patron has a [% credits | $Price %] credit.

+ [% END %]
diff --git a/members/deletemem.pl b/members/deletemem.pl index 1ae2c662f1..f0f754a53a 100755 --- a/members/deletemem.pl +++ b/members/deletemem.pl @@ -56,7 +56,8 @@ my $logged_in_user = Koha::Patrons->find( $loggedinuser ); my $patron = Koha::Patrons->find( $member ); output_and_exit_if_error( $input, $cookie, $template, { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } ); -my $charges = $patron->account->non_issues_charges; +my $debits = $patron->account->outstanding_debits->total_outstanding; +my $credits = $patron->account->outstanding_credits->total_outstanding; my $countissues = $patron->checkouts->count; my $userenv = C4::Context->userenv; @@ -86,32 +87,22 @@ my $op = $input->param('op') || 'delete_confirm'; my $dbh = C4::Context->dbh; my $is_guarantor = $patron->guarantee_relationships->count; my $countholds = $dbh->selectrow_array("SELECT COUNT(*) FROM reserves WHERE borrowernumber=?", undef, $member); -if ( $op eq 'delete_confirm' or $countissues > 0 or $charges or $is_guarantor ) { +$template->param( + patron => $patron, + ItemsOnIssues => $countissues, + debits => $debits, + credits => $credits, + is_guarantor => $is_guarantor, + ItemsOnHold => $countholds, +); + +if ( $op eq 'delete_confirm' or $countissues > 0 or $debits or $is_guarantor ) { $template->param( - patron => $patron, + op => 'delete_confirm', + csrf_token => Koha::Token->new->generate_csrf({ session_id => scalar $input->cookie('CGISESSID') }), ); - if ($countissues >0) { - $template->param(ItemsOnIssues => $countissues); - } - if ( $charges > 0 ) { - $template->param(charges => $charges); - } - if ( $is_guarantor ) { - $template->param( guarantees => 1 ); - } - if($countholds > 0){ - $template->param(ItemsOnHold => $countholds); - } - # This is silly written but reflect the same conditions as above - if ( not $countissues > 0 and not $charges > 0 and not $is_guarantor ) { - $template->param( - op => 'delete_confirm', - csrf_token => Koha::Token->new->generate_csrf({ session_id => scalar $input->cookie('CGISESSID') }), - ); - } } elsif ( $op eq 'delete_confirmed' ) { - output_and_exit( $input, $cookie, $template, 'wrong_csrf_token' ) unless Koha::Token->new->check_csrf( { session_id => $input->cookie('CGISESSID'), -- 2.39.5