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 |