|
Lines 721-726
sub ModMember {
Link Here
|
| 721 |
$data{password} = md5_base64($data{password}); |
721 |
$data{password} = md5_base64($data{password}); |
| 722 |
} |
722 |
} |
| 723 |
} |
723 |
} |
|
|
724 |
my $old_categorycode = GetBorrowerCategorycode( $data{borrowernumber} ); |
| 724 |
my $execute_success=UpdateInTable("borrowers",\%data); |
725 |
my $execute_success=UpdateInTable("borrowers",\%data); |
| 725 |
if ($execute_success) { # only proceed if the update was a success |
726 |
if ($execute_success) { # only proceed if the update was a success |
| 726 |
# ok if its an adult (type) it may have borrowers that depend on it as a guarantor |
727 |
# ok if its an adult (type) it may have borrowers that depend on it as a guarantor |
|
Lines 731-742
sub ModMember {
Link Here
|
| 731 |
# is adult check guarantees; |
732 |
# is adult check guarantees; |
| 732 |
UpdateGuarantees(%data); |
733 |
UpdateGuarantees(%data); |
| 733 |
} |
734 |
} |
|
|
735 |
|
| 736 |
# If the patron changes to a category with enrollment fee, we add a fee |
| 737 |
if ( $data{categorycode} and $data{categorycode} ne $old_categorycode ) { |
| 738 |
AddEnrolmentFeeIfNeeded( $data{categorycode}, $data{borrowernumber} ); |
| 739 |
} |
| 740 |
|
| 734 |
logaction("MEMBERS", "MODIFY", $data{'borrowernumber'}, "UPDATE (executed w/ arg: $data{'borrowernumber'})") if C4::Context->preference("BorrowersLog"); |
741 |
logaction("MEMBERS", "MODIFY", $data{'borrowernumber'}, "UPDATE (executed w/ arg: $data{'borrowernumber'})") if C4::Context->preference("BorrowersLog"); |
| 735 |
} |
742 |
} |
| 736 |
return $execute_success; |
743 |
return $execute_success; |
| 737 |
} |
744 |
} |
| 738 |
|
745 |
|
| 739 |
|
|
|
| 740 |
=head2 AddMember |
746 |
=head2 AddMember |
| 741 |
|
747 |
|
| 742 |
$borrowernumber = &AddMember(%borrower); |
748 |
$borrowernumber = &AddMember(%borrower); |
|
Lines 773-791
sub AddMember {
Link Here
|
| 773 |
|
779 |
|
| 774 |
# mysql_insertid is probably bad. not necessarily accurate and mysql-specific at best. |
780 |
# mysql_insertid is probably bad. not necessarily accurate and mysql-specific at best. |
| 775 |
logaction("MEMBERS", "CREATE", $data{'borrowernumber'}, "") if C4::Context->preference("BorrowersLog"); |
781 |
logaction("MEMBERS", "CREATE", $data{'borrowernumber'}, "") if C4::Context->preference("BorrowersLog"); |
| 776 |
|
782 |
|
| 777 |
# check for enrollment fee & add it if needed |
783 |
AddEnrolmentFeeIfNeeded( $data{categorycode}, $data{borrowernumber} ); |
| 778 |
my $sth = $dbh->prepare("SELECT enrolmentfee FROM categories WHERE categorycode=?"); |
|
|
| 779 |
$sth->execute($data{'categorycode'}); |
| 780 |
my ($enrolmentfee) = $sth->fetchrow; |
| 781 |
if ($sth->err) { |
| 782 |
warn sprintf('Database returned the following error: %s', $sth->errstr); |
| 783 |
return; |
| 784 |
} |
| 785 |
if ($enrolmentfee && $enrolmentfee > 0) { |
| 786 |
# insert fee in patron debts |
| 787 |
manualinvoice($data{'borrowernumber'}, '', '', 'A', $enrolmentfee); |
| 788 |
} |
| 789 |
|
784 |
|
| 790 |
return $data{'borrowernumber'}; |
785 |
return $data{'borrowernumber'}; |
| 791 |
} |
786 |
} |
|
Lines 1845-1859
UPDATE borrowers
Link Here
|
| 1845 |
SET dateexpiry='$date' |
1840 |
SET dateexpiry='$date' |
| 1846 |
WHERE borrowernumber='$borrowerid' |
1841 |
WHERE borrowernumber='$borrowerid' |
| 1847 |
EOF |
1842 |
EOF |
| 1848 |
# add enrolmentfee if needed |
1843 |
|
| 1849 |
$sth = $dbh->prepare("SELECT enrolmentfee FROM categories WHERE categorycode=?"); |
1844 |
AddEnrolmentFeeIfNeeded( $borrower->{categorycode}, $borrower->{borrowernumber} ); |
| 1850 |
$sth->execute($borrower->{'categorycode'}); |
1845 |
|
| 1851 |
my ($enrolmentfee) = $sth->fetchrow; |
1846 |
logaction("MEMBERS", "RENEW", $borrower->{'borrowernumber'}, "Membership renewed")if C4::Context->preference("BorrowersLog"); |
| 1852 |
if ($enrolmentfee && $enrolmentfee > 0) { |
|
|
| 1853 |
# insert fee in patron debts |
| 1854 |
manualinvoice($borrower->{'borrowernumber'}, '', '', 'A', $enrolmentfee); |
| 1855 |
} |
| 1856 |
logaction("MEMBERS", "RENEW", $borrower->{'borrowernumber'}, "Membership renewed")if C4::Context->preference("BorrowersLog"); |
| 1857 |
return $date if ($sth); |
1847 |
return $date if ($sth); |
| 1858 |
return 0; |
1848 |
return 0; |
| 1859 |
} |
1849 |
} |
|
Lines 2509-2514
sub AddMember_Opac {
Link Here
|
| 2509 |
return ( $borrowernumber, $password ); |
2499 |
return ( $borrowernumber, $password ); |
| 2510 |
} |
2500 |
} |
| 2511 |
|
2501 |
|
|
|
2502 |
=head2 AddEnroltmenFeeIfNeeded |
| 2503 |
|
| 2504 |
AddEnrolmentFeeIfNeeded( $borrower->{categorycode}, $borrower->{borrowernumber} ); |
| 2505 |
|
| 2506 |
Add enrolment fee for a patron if needed. |
| 2507 |
|
| 2508 |
=cut |
| 2509 |
|
| 2510 |
sub AddEnrolmentFeeIfNeeded { |
| 2511 |
my ( $categorycode, $borrowernumber ) = @_; |
| 2512 |
# check for enrollment fee & add it if needed |
| 2513 |
my $dbh = C4::Context->dbh; |
| 2514 |
my $sth = $dbh->prepare(q{ |
| 2515 |
SELECT enrolmentfee |
| 2516 |
FROM categories |
| 2517 |
WHERE categorycode=? |
| 2518 |
}); |
| 2519 |
$sth->execute( $categorycode ); |
| 2520 |
if ( $sth->err ) { |
| 2521 |
warn sprintf('Database returned the following error: %s', $sth->errstr); |
| 2522 |
return; |
| 2523 |
} |
| 2524 |
my ($enrolmentfee) = $sth->fetchrow; |
| 2525 |
if ($enrolmentfee && $enrolmentfee > 0) { |
| 2526 |
# insert fee in patron debts |
| 2527 |
C4::Accounts::manualinvoice( $borrowernumber, '', '', 'A', $enrolmentfee ); |
| 2528 |
} |
| 2529 |
} |
| 2530 |
|
| 2512 |
END { } # module clean-up code here (global destructor) |
2531 |
END { } # module clean-up code here (global destructor) |
| 2513 |
|
2532 |
|
| 2514 |
1; |
2533 |
1; |
| 2515 |
- |
|
|