Bug 39180: Add a warning on patron missing guaranor

To test:
1 - Create a patron in a category that can be a guarantee and do not assign any guarantor
2 - Create a patron in a 'Child' account type and do not assign a guarantor
3 - Enable system preference 'ChildNeedsGuarantor'
4 - View 'Check out' and 'Details' tabs for both patrons, note there is no warning
5 - Apply patch
6 - Repeat 4, note warning on all pages
7 - Add a patron gaurantor on the child - repeat 4 - warning is gone
8 - Add non-patron guarantor information to other patron - repeat 4 - warning is gone

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
Nick Clemens 2025-05-21 11:42:51 +00:00 committed by Lucas Gass
parent bd32425271
commit 2025ed7fdc
No known key found for this signature in database
GPG Key ID: 60B447398B0D36CA
4 changed files with 26 additions and 2 deletions

View File

@ -720,12 +720,20 @@ my $view =
my @relatives;
if ($patron) {
if ( my @guarantors = $patron->guarantor_relationships()->guarantors->as_list ) {
my @guarantors = $patron->guarantor_relationships()->guarantors->as_list;
if ( scalar @guarantors ) {
push( @relatives, $_->id ) for @guarantors;
push( @relatives, $_->id ) for $patron->siblings->as_list;
} else {
push( @relatives, $_->id ) for $patron->guarantee_relationships()->guarantees->as_list;
}
if ( C4::Context->preference('ChildNeedsGuarantor')
and ( $patron->is_child or $patron->category->can_be_guarantee )
and $patron->contactname eq ""
and !@guarantors )
{
$template->param( missing_guarantor => 1 );
}
}
my $relatives_issues_count =
Koha::Database->new()->schema()->resultset('Issue')->count( { borrowernumber => \@relatives } );

View File

@ -134,6 +134,10 @@
<div class="alert alert-warning">This is the anonymous patron, so circulation is disabled.</div>
[% END %]
[% IF missing_guarantor %]
<div class="alert alert-warning">System preference 'ChildNeedsGuarantor' is enabled and this patron does not have a guarantor.</div>
[% END %]
[% IF ( NEEDSCONFIRMATION ) %]
<div id="circ_needsconfirmation" class="alert alert-warning audio-alert-action focus" tabindex="-1">
[% IF CAN_user_circulate_force_checkout or ADDITIONAL_MATERIALS %]

View File

@ -54,6 +54,10 @@
<div class="alert alert-warning">This is the anonymous patron.</div>
[% END %]
[% IF missing_guarantor %]
<div class="alert alert-warning">System preference 'ChildNeedsGuarantor' is enabled and this patron does not have a guarantor.</div>
[% END %]
[% IF ( error ) %]
<div class="alert alert-warning">
[% IF ( error == 'CANT_DELETE_STAFF' ) %]

View File

@ -76,7 +76,8 @@ output_and_exit_if_error(
{ module => 'members', logged_in_user => $logged_in_user, current_patron => $patron }
);
my $category_type = $patron->category->category_type;
my $category = $patron->category;
my $category_type = $category->category_type;
for (qw(gonenoaddress lost borrowernotes is_debarred)) {
$patron->$_ and $template->param( flagged => 1 ) and last;
@ -112,6 +113,13 @@ $template->param(
guarantor_relationships => $guarantor_relationships,
guarantees => \@guarantees,
);
if ( C4::Context->preference('ChildNeedsGuarantor')
and ( $patron->is_child or $category->can_be_guarantee )
and $patron->contactname eq ""
and !@guarantors )
{
$template->param( missing_guarantor => 1 );
}
my $relatives_issues_count = Koha::Checkouts->count( { borrowernumber => \@relatives } );