|
Lines 448-461
sub GetMember {
Link Here
|
| 448 |
$debug && warn $select, " ",values %information; |
448 |
$debug && warn $select, " ",values %information; |
| 449 |
my $sth = $dbh->prepare("$select"); |
449 |
my $sth = $dbh->prepare("$select"); |
| 450 |
$sth->execute(map{$information{$_}} keys %information); |
450 |
$sth->execute(map{$information{$_}} keys %information); |
| 451 |
my $data = $sth->fetchall_arrayref({}); |
451 |
my $data = $sth->fetchrow_hashref; |
| 452 |
#FIXME interface to this routine now allows generation of a result set |
452 |
return $data if $data |
| 453 |
#so whole array should be returned but bowhere in the current code expects this |
453 |
# FIXME this routine can now support generation of a resultset |
| 454 |
if (@{$data} ) { |
454 |
# but until that is needed only what is expected by current |
| 455 |
return $data->[0]; |
455 |
# routines will be generated and returned for the sake of |
| 456 |
} |
456 |
# perfomance. |
| 457 |
|
|
|
| 458 |
return; |
| 459 |
} |
457 |
} |
| 460 |
|
458 |
|
| 461 |
=head2 GetMemberRelatives |
459 |
=head2 GetMemberRelatives |
|
Lines 738-749
sub AddMember {
Link Here
|
| 738 |
$data{'dateenrolled'} = output_pref( { dt => dt_from_string, dateonly => 1, dateformat => 'iso' } ); |
736 |
$data{'dateenrolled'} = output_pref( { dt => dt_from_string, dateonly => 1, dateformat => 'iso' } ); |
| 739 |
} |
737 |
} |
| 740 |
|
738 |
|
| 741 |
my $patron_category = $schema->resultset('Category')->find( $data{'categorycode'} ); |
739 |
# Check the member category privacy level |
|
|
740 |
my $patron_privacy = GetCategoryPrivacy( $data{'categorycode'} ); |
| 742 |
$data{'privacy'} = |
741 |
$data{'privacy'} = |
| 743 |
$patron_category->default_privacy() eq 'default' ? 1 |
742 |
$patron_privacy eq 'default' ? 1 |
| 744 |
: $patron_category->default_privacy() eq 'never' ? 2 |
743 |
: $patron_privacy eq 'never' ? 2 |
| 745 |
: $patron_category->default_privacy() eq 'forever' ? 0 |
744 |
: $patron_privacy eq 'forever' ? 0 |
| 746 |
: undef; |
745 |
: undef; |
| 747 |
# Make a copy of the plain text password for later use |
746 |
# Make a copy of the plain text password for later use |
| 748 |
my $plain_text_password = $data{'password'}; |
747 |
my $plain_text_password = $data{'password'}; |
| 749 |
|
748 |
|
|
Lines 801-817
sub Check_Userid {
Link Here
|
| 801 |
|
800 |
|
| 802 |
return 0 unless ($uid); # userid is a unique column, we should assume NULL is not unique |
801 |
return 0 unless ($uid); # userid is a unique column, we should assume NULL is not unique |
| 803 |
|
802 |
|
| 804 |
return 0 if ( $uid eq C4::Context->config('user') ); |
803 |
my $sql = 'SELECT borrowernumber FROM borrowers WHERE userid=?'; |
| 805 |
|
804 |
$sql .= ' AND borrowernumber != ?' if $borrowernumber; |
| 806 |
my $rs = Koha::Database->new()->schema()->resultset('Borrower'); |
805 |
my $dbh = C4::Context->dbh; |
| 807 |
|
806 |
my $sth = $dbh->prepare($sql); |
| 808 |
my $params; |
807 |
if ($borrowernumber) { |
| 809 |
$params->{userid} = $uid; |
808 |
$sth->execute( $uid, $borrowernumber ); |
| 810 |
$params->{borrowernumber} = { '!=' => $borrowernumber } if ($borrowernumber); |
809 |
} |
| 811 |
|
810 |
else { |
| 812 |
my $count = $rs->count( $params ); |
811 |
$sth->execute($uid); |
| 813 |
|
812 |
} |
| 814 |
return $count ? 0 : 1; |
813 |
my $data = $sth->fetchrow; |
|
|
814 |
return $data ? 0 : 1; |
| 815 |
} |
815 |
} |
| 816 |
|
816 |
|
| 817 |
=head2 Generate_Userid |
817 |
=head2 Generate_Userid |
|
Lines 1308-1314
sub checkcardnumber {
Link Here
|
| 1308 |
return 0 unless defined $cardnumber; |
1308 |
return 0 unless defined $cardnumber; |
| 1309 |
|
1309 |
|
| 1310 |
my $dbh = C4::Context->dbh; |
1310 |
my $dbh = C4::Context->dbh; |
| 1311 |
my $query = "SELECT * FROM borrowers WHERE cardnumber=?"; |
1311 |
my $query = "SELECT borrowernumber FROM borrowers WHERE cardnumber=?"; |
| 1312 |
$query .= " AND borrowernumber <> ?" if ($borrowernumber); |
1312 |
$query .= " AND borrowernumber <> ?" if ($borrowernumber); |
| 1313 |
my $sth = $dbh->prepare($query); |
1313 |
my $sth = $dbh->prepare($query); |
| 1314 |
$sth->execute( |
1314 |
$sth->execute( |
|
Lines 1316-1322
sub checkcardnumber {
Link Here
|
| 1316 |
( $borrowernumber ? $borrowernumber : () ) |
1316 |
( $borrowernumber ? $borrowernumber : () ) |
| 1317 |
); |
1317 |
); |
| 1318 |
|
1318 |
|
| 1319 |
return 1 if $sth->fetchrow_hashref; |
1319 |
return 1 if $sth->fetchrow; |
| 1320 |
|
1320 |
|
| 1321 |
my ( $min_length, $max_length ) = get_cardnumber_length(); |
1321 |
my ( $min_length, $max_length ) = get_cardnumber_length(); |
| 1322 |
return 2 |
1322 |
return 2 |
|
Lines 2559-2564
WHERE categorycode = ? AND DATEDIFF( NOW(), dateenrolled ) > ? |;
Link Here
|
| 2559 |
return $cnt; |
2559 |
return $cnt; |
| 2560 |
} |
2560 |
} |
| 2561 |
|
2561 |
|
|
|
2562 |
=head2 GetBorrowecategoryHash |
| 2563 |
|
| 2564 |
$arrayref_hashref = &GetBorrowercateforyHash; |
| 2565 |
|
| 2566 |
This function returns a hash of borrower categories where the keys are category |
| 2567 |
codes and values are category descriptions. |
| 2568 |
|
| 2569 |
=cut |
| 2570 |
|
| 2571 |
sub GetBorrowercategoryHash { |
| 2572 |
my $categories_list = GetBorrowercategoryList(); |
| 2573 |
my %categories_hash = map { $_->{categorycode} => $_->{description} } @{$categories_list}; |
| 2574 |
return %categories_hash; |
| 2575 |
} |
| 2576 |
|
| 2577 |
=head2 GetCategoryPrivacyHash |
| 2578 |
|
| 2579 |
$hashref = &GetCategoryPrivacyHash |
| 2580 |
Returns the default privacy description of a patron's category given the category code. |
| 2581 |
|
| 2582 |
=cut |
| 2583 |
|
| 2584 |
sub GetCategoryPrivacy { |
| 2585 |
my ($categorycode) = @_; |
| 2586 |
my $dbh = C4::Context->dbh; |
| 2587 |
my $sth = $dbh->prepare( |
| 2588 |
qq{ |
| 2589 |
SELECT default_privacy |
| 2590 |
FROM categories |
| 2591 |
WHERE categorycode = ? |
| 2592 |
}); |
| 2593 |
$sth->execute($categorycode); |
| 2594 |
return $sth->fetchrow; |
| 2595 |
} |
| 2596 |
|
| 2562 |
=head2 DeleteUnverifiedOpacRegistrations |
2597 |
=head2 DeleteUnverifiedOpacRegistrations |
| 2563 |
|
2598 |
|
| 2564 |
Delete all unverified self registrations in borrower_modifications, |
2599 |
Delete all unverified self registrations in borrower_modifications, |