diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt index e430f5e45b..dde1efaf4d 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt @@ -217,6 +217,9 @@ legend.collapsed i.fa.fa-caret-down::before { [% IF ( ERROR_cannot_delete_guarantor ) %]
  • Cannot delete guarantor(s). A child patron needs a guarantor.
  • [% END %] + [% IF ( ERROR_invalid_relationship ) %] +
  • Guarantor relationship is invalid.
  • + [% END %] [% END %] @@ -554,7 +557,7 @@ legend.collapsed i.fa.fa-caret-down::before { [% END %] [% END %] - [% UNLESS mandatoryrelationship %] + [% IF mandatoryrelationship %] Required [% END %] diff --git a/members/memberentry.pl b/members/memberentry.pl index 3e75eeebde..7ee45c5eed 100755 --- a/members/memberentry.pl +++ b/members/memberentry.pl @@ -289,6 +289,22 @@ foreach my $guarantor (@guarantors) { } } +my @valid_relationships = split(/\|/, C4::Context->preference('borrowerRelationship'), -1); +if (@valid_relationships) { + my @new_guarantor_id = $input->multi_param('new_guarantor_id'); + my @new_guarantor_relationship = $input->multi_param('new_guarantor_relationship'); + + for ( my $i = 0 ; $i < scalar @new_guarantor_id; $i++ ) { + my $guarantor_id = $new_guarantor_id[$i]; + my $relationship = $new_guarantor_relationship[$i]; + + next unless $guarantor_id; + unless ( grep { $_ eq $relationship } @valid_relationships ) { + push @errors, 'ERROR_invalid_relationship'; + } + } +} + ###############test to take the right zipcode, country and city name ############## # set only if parameter was passed from the form $newdata{'city'} = $input->param('city') if defined($input->param('city'));