|
Lines 607-636
sub ParsePatronAttributes {
Link Here
|
| 607 |
my @codes = $cgi->multi_param('patron_attribute_code'); |
607 |
my @codes = $cgi->multi_param('patron_attribute_code'); |
| 608 |
my @values = $cgi->multi_param('patron_attribute_value'); |
608 |
my @values = $cgi->multi_param('patron_attribute_value'); |
| 609 |
|
609 |
|
|
|
610 |
my @editable_attribute_types |
| 611 |
= map { $_->code } Koha::Patron::Attribute::Types->search({ opac_editable => 1 }); |
| 612 |
|
| 610 |
my $ea = each_array( @codes, @values ); |
613 |
my $ea = each_array( @codes, @values ); |
| 611 |
my @attributes; |
614 |
my @attributes; |
| 612 |
|
615 |
|
| 613 |
my $delete_candidates = {}; |
616 |
my $delete_candidates = {}; |
| 614 |
|
617 |
|
| 615 |
while ( my ( $code, $value ) = $ea->() ) { |
618 |
while ( my ( $code, $value ) = $ea->() ) { |
| 616 |
if ( !defined($value) or $value eq '' ) { |
619 |
if ( any { $_ eq $code } @editable_attribute_types ) { |
| 617 |
$delete_candidates->{$code} = 1 |
620 |
# It is an editable attribute |
| 618 |
unless $delete_candidates->{$code}; |
621 |
if ( !defined($value) or $value eq '' ) { |
| 619 |
} |
622 |
$delete_candidates->{$code} = 1 |
| 620 |
else { |
623 |
unless $delete_candidates->{$code}; |
| 621 |
# we've got a value |
624 |
} |
| 622 |
push @attributes, { code => $code, value => $value }; |
625 |
else { |
|
|
626 |
# we've got a value |
| 627 |
push @attributes, { code => $code, value => $value }; |
| 623 |
|
628 |
|
| 624 |
# 'code' is no longer a delete candidate |
629 |
# 'code' is no longer a delete candidate |
| 625 |
delete $delete_candidates->{$code}; |
630 |
delete $delete_candidates->{$code} |
|
|
631 |
if defined $delete_candidates->{$code}; |
| 632 |
} |
| 626 |
} |
633 |
} |
| 627 |
} |
634 |
} |
| 628 |
|
635 |
|
| 629 |
foreach my $code ( keys %{$delete_candidates} ) { |
636 |
foreach my $code ( keys %{$delete_candidates} ) { |
| 630 |
if (Koha::Patron::Attributes->search( |
637 |
if ( Koha::Patron::Attributes->search({ |
| 631 |
{ borrowernumber => $borrowernumber, code => $code } |
638 |
borrowernumber => $borrowernumber, code => $code })->count > 0 ) |
| 632 |
)->count > 0 |
|
|
| 633 |
) |
| 634 |
{ |
639 |
{ |
| 635 |
push @attributes, { code => $code, value => '' } |
640 |
push @attributes, { code => $code, value => '' } |
| 636 |
unless any { $_->{code} eq $code } @attributes; |
641 |
unless any { $_->{code} eq $code } @attributes; |
| 637 |
- |
|
|