Bug 38841: Check non-patron guarantor while deleting patron guarantor

When editing a child while Childneedsquarantor active, trying to delete
a guarantor while saving a non-patron guarantor will prevent the user
from saving. However, if an adult has expired, some librarian would like
to remove the account and let some information in non-patron guarantor.

TEST PLAN

Before applying patch
1 - Open Lisa Charles'page, add Henry Acevedo as Guarantor, also fill
  Guarantor surname and firstname
2 - Edit the page and try and remove Henry Acevedo, it won't work
  however there is still one guarantor

3 - Apply patch
4 - Try and remove Henry Acevedo -> it will work
5 - add HA as a guarantor again
6 - try and remove him AND let guarantor firstname and surname empty ->
  you can't
7 - Add HA and Edna Acosta as guarantor
8 - Remove HA and ler guarantor firstname and surname empty -> you can

Signed-off-by: Thibault Keromnes <thibault.keromnes@univ-paris8.fr>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This commit is contained in:
Baptiste 2025-01-07 16:50:13 +01:00 committed by Katrin Fischer
parent d6af10d881
commit e0be89266d
No known key found for this signature in database
GPG Key ID: 0EF6E2C03357A834
1 changed files with 5 additions and 3 deletions

View File

@ -271,9 +271,11 @@ if ( ( $op eq 'cud-insert' ) and !$nodouble ) {
#Attempt to delete guarantors
my @delete_guarantor = $input->multi_param('delete_guarantor');
if (@delete_guarantor) {
if ( C4::Context->preference('ChildNeedsGuarantor')
&& scalar @guarantors - scalar @delete_guarantor == 0 )
{
my $will_remove_last =
( scalar @guarantors - scalar @delete_guarantor == 0 )
&& $newdata{'contactname'} eq q{}
&& $newdata{'contactfirstname'} eq q{};
if ( C4::Context->preference('ChildNeedsGuarantor') && $will_remove_last ) {
push @errors, 'ERROR_cannot_delete_guarantor';
} else {
foreach my $id (@delete_guarantor) {