|
Lines 86-92
BEGIN {
Link Here
|
| 86 |
#Check data |
86 |
#Check data |
| 87 |
push @EXPORT, qw( |
87 |
push @EXPORT, qw( |
| 88 |
&checkuserpassword |
88 |
&checkuserpassword |
| 89 |
&fixup_cardnumber |
|
|
| 90 |
&checkcardnumber |
89 |
&checkcardnumber |
| 91 |
); |
90 |
); |
| 92 |
} |
91 |
} |
|
Lines 426-437
sub AddMember {
Link Here
|
| 426 |
$data{'dateenrolled'} = output_pref( { dt => dt_from_string, dateonly => 1, dateformat => 'iso' } ); |
425 |
$data{'dateenrolled'} = output_pref( { dt => dt_from_string, dateonly => 1, dateformat => 'iso' } ); |
| 427 |
} |
426 |
} |
| 428 |
|
427 |
|
| 429 |
if ( C4::Context->preference("autoMemberNum") ) { |
|
|
| 430 |
if ( not exists $data{cardnumber} or not defined $data{cardnumber} or $data{cardnumber} eq '' ) { |
| 431 |
$data{cardnumber} = fixup_cardnumber( $data{cardnumber} ); |
| 432 |
} |
| 433 |
} |
| 434 |
|
| 435 |
$data{'privacy'} = |
428 |
$data{'privacy'} = |
| 436 |
$category->default_privacy() eq 'default' ? 1 |
429 |
$category->default_privacy() eq 'default' ? 1 |
| 437 |
: $category->default_privacy() eq 'never' ? 2 |
430 |
: $category->default_privacy() eq 'never' ? 2 |
|
Lines 481-512
sub AddMember {
Link Here
|
| 481 |
return $data{borrowernumber}; |
474 |
return $data{borrowernumber}; |
| 482 |
} |
475 |
} |
| 483 |
|
476 |
|
| 484 |
=head2 fixup_cardnumber |
|
|
| 485 |
|
| 486 |
Warning: The caller is responsible for locking the members table in write |
| 487 |
mode, to avoid database corruption. |
| 488 |
|
| 489 |
=cut |
| 490 |
|
| 491 |
sub fixup_cardnumber { |
| 492 |
my ($cardnumber) = @_; |
| 493 |
my $autonumber_members = C4::Context->boolean_preference('autoMemberNum') || 0; |
| 494 |
|
| 495 |
# Find out whether member numbers should be generated |
| 496 |
# automatically. Should be either "1" or something else. |
| 497 |
# Defaults to "0", which is interpreted as "no". |
| 498 |
|
| 499 |
($autonumber_members) or return $cardnumber; |
| 500 |
my $dbh = C4::Context->dbh; |
| 501 |
|
| 502 |
my $sth = $dbh->prepare( |
| 503 |
'SELECT MAX( CAST( cardnumber AS SIGNED ) ) FROM borrowers WHERE cardnumber REGEXP "^-?[0-9]+$"' |
| 504 |
); |
| 505 |
$sth->execute; |
| 506 |
my ($result) = $sth->fetchrow; |
| 507 |
return $result + 1; |
| 508 |
} |
| 509 |
|
| 510 |
=head2 GetAllIssues |
477 |
=head2 GetAllIssues |
| 511 |
|
478 |
|
| 512 |
$issues = &GetAllIssues($borrowernumber, $sortkey, $limit); |
479 |
$issues = &GetAllIssues($borrowernumber, $sortkey, $limit); |
|
Lines 879-889
sub IssueSlip {
Link Here
|
| 879 |
sub AddMember_Auto { |
846 |
sub AddMember_Auto { |
| 880 |
my ( %borrower ) = @_; |
847 |
my ( %borrower ) = @_; |
| 881 |
|
848 |
|
| 882 |
$borrower{'cardnumber'} ||= fixup_cardnumber(); |
|
|
| 883 |
|
| 884 |
$borrower{'borrowernumber'} = AddMember(%borrower); |
849 |
$borrower{'borrowernumber'} = AddMember(%borrower); |
| 885 |
|
850 |
my $patron = Koha::Patrons->find( $borrower{borrowernumber} )->unblessed; |
| 886 |
return ( %borrower ); |
851 |
$patron->{password} = $borrower{password}; |
|
|
852 |
return %$patron; |
| 887 |
} |
853 |
} |
| 888 |
|
854 |
|
| 889 |
=head2 AddMember_Opac |
855 |
=head2 AddMember_Opac |