+# function to designate unwanted fields
+my $check_BorrowerUnwantedField=C4::Context->preference("BorrowerUnwantedField");
+@field_check=split(/\|/,$check_BorrowerUnwantedField);
+foreach (@field_check) {
+ next unless m/\w/o;
+ $template->param( "no$_" => 1);
+}
$template->param( "add" => 1 ) if ( $op eq 'add' );
$template->param( "duplicate" => 1 ) if ( $op eq 'duplicate' );
$template->param( "checked" => 1 ) if ( defined($nodouble) && $nodouble eq 1 );
$template->param( "add" => 1 ) if ( $op eq 'add' );
$template->param( "duplicate" => 1 ) if ( $op eq 'duplicate' );
$template->param( "checked" => 1 ) if ( defined($nodouble) && $nodouble eq 1 );
push @errors, "ERROR_short_password" if( $password && $minpw && $password ne '****' && (length($password) < $minpw) );
if (C4::Context->preference('ExtendedPatronAttributes')) {
push @errors, "ERROR_short_password" if( $password && $minpw && $password ne '****' && (length($password) < $minpw) );
if (C4::Context->preference('ExtendedPatronAttributes')) {
# if we manage to find a valid email address, send notice
if ($emailaddr) {
$newdata{emailaddr} = $emailaddr;
# if we manage to find a valid email address, send notice
if ($emailaddr) {
$newdata{emailaddr} = $emailaddr;
- my $letter = getletter ('members', "ACCTDETAILS:$newdata{'branchcode'}") ;
- # if $branch notice fails, then email a default notice instead.
- $letter = getletter ('members', "ACCTDETAILS") if !$letter;
- SendAlerts ( 'members' , \%newdata , $letter ) if $letter
+ my $err;
+ eval {
+ $err = SendAlerts ( 'members', \%newdata, "ACCTDETAILS" );
+ };
+ if ( $@ ) {
+ $template->param(error_alert => $@);
+ } elsif ( defined $err->{error} and $err->{error} eq "no_email" ) {
+ $template->{VARS}->{'error_alert'} = "no_email";
+ } else {
+ $template->{VARS}->{'info_alert'} = 1;
+ }
if ($op eq "modify") {
$template->param( updtype => 'M',modify => 1 );
$template->param( step_1=>1, step_2=>1, step_3=>1, step_4=>1, step_5 => 1, step_6 => 1) unless $step;
if ($op eq "modify") {
$template->param( updtype => 'M',modify => 1 );
$template->param( step_1=>1, step_2=>1, step_3=>1, step_4=>1, step_5 => 1, step_6 => 1) unless $step;
foreach my $type_code (map { $_->{code} } @types) {
my $attr_type = C4::Members::AttributeTypes->fetch($type_code);
my $entry = {
foreach my $type_code (map { $_->{code} } @types) {
my $attr_type = C4::Members::AttributeTypes->fetch($type_code);
my $entry = {
code => $attr_type->code(),
description => $attr_type->description(),
repeatable => $attr_type->repeatable(),
password_allowed => $attr_type->password_allowed(),
category => $attr_type->authorised_value_category(),
code => $attr_type->code(),
description => $attr_type->description(),
repeatable => $attr_type->repeatable(),
password_allowed => $attr_type->password_allowed(),
category => $attr_type->authorised_value_category(),
$newentry->{auth_val_loop} = GetAuthorisedValues($attr_type->authorised_value_category());
}
$newentry->{form_id} = "patron_attr_$i";
$newentry->{auth_val_loop} = GetAuthorisedValues($attr_type->authorised_value_category());
}
$newentry->{form_id} = "patron_attr_$i";
- push @attribute_loop, $newentry;
+ push @{$items_by_class{$attr_type->class()}}, $newentry;
+ }
+ }
+ while ( my ($class, @items) = each %items_by_class ) {
+ my $lib = GetAuthorisedValueByCode( 'PA_CLASS', $class ) || $class;
+ push @attribute_loop, {
+ class => $class,
+ items => @items,
+ lib => $lib,