|
Lines 196-201
sub plain_text_password {
Link Here
|
| 196 |
return; |
196 |
return; |
| 197 |
} |
197 |
} |
| 198 |
|
198 |
|
|
|
199 |
sub preferred_name { |
| 200 |
|
| 201 |
my ( $self ) = @_; |
| 202 |
|
| 203 |
my $val = $self->_result->preferred_name; |
| 204 |
|
| 205 |
return $self->{_cached_preferred_name} if exists $self->{_cached_preferred_name}; |
| 206 |
|
| 207 |
if ( !defined $val || $val =~ /^\s*$/ ) { |
| 208 |
my $fname = $self->firstname; |
| 209 |
if ( defined $fname && $fname ne '' ) { |
| 210 |
|
| 211 |
return $fname if (!$self->in_storage || $self->_result->is_changed); |
| 212 |
|
| 213 |
eval { |
| 214 |
$self->_result->update({ preferred_name => $fname }); |
| 215 |
$self->_result->discard_changes; |
| 216 |
}; |
| 217 |
|
| 218 |
if ($@) { |
| 219 |
warn "Non-fatal: Could not auto-sync preferred_name for patron " . $self->borrowernumber . ": $@"; |
| 220 |
} |
| 221 |
|
| 222 |
return $fname; |
| 223 |
} |
| 224 |
} |
| 225 |
|
| 226 |
$self->{_cached_preferred_name} = $val; |
| 227 |
return $val; |
| 228 |
} |
| 229 |
|
| 199 |
=head3 store |
230 |
=head3 store |
| 200 |
|
231 |
|
| 201 |
Patron specific store method to cleanup record |
232 |
Patron specific store method to cleanup record |
|
Lines 240-246
sub store {
Link Here
|
| 240 |
if C4::Context->preference("uppercasesurnames"); |
271 |
if C4::Context->preference("uppercasesurnames"); |
| 241 |
|
272 |
|
| 242 |
# Add preferred name unless specified |
273 |
# Add preferred name unless specified |
| 243 |
unless ( $self->preferred_name ) { |
274 |
if ( !defined $self->preferred_name || $self->preferred_name =~ /^\s*$/ ) { |
| 244 |
$self->preferred_name( $self->firstname ); |
275 |
$self->preferred_name( $self->firstname ); |
| 245 |
} |
276 |
} |
| 246 |
|
277 |
|
|
Lines 424-429
sub store {
Link Here
|
| 424 |
|
455 |
|
| 425 |
# Final store |
456 |
# Final store |
| 426 |
$self = $self->SUPER::store; |
457 |
$self = $self->SUPER::store; |
|
|
458 |
|
| 427 |
} |
459 |
} |
| 428 |
} |
460 |
} |
| 429 |
); |
461 |
); |