Lines 753-758
sub ModMember {
Link Here
|
753 |
$data{password} = md5_base64($data{password}); |
753 |
$data{password} = md5_base64($data{password}); |
754 |
} |
754 |
} |
755 |
} |
755 |
} |
|
|
756 |
my $old_categorycode = GetBorrowerCategorycode( $data{borrowernumber} ); |
756 |
my $execute_success=UpdateInTable("borrowers",\%data); |
757 |
my $execute_success=UpdateInTable("borrowers",\%data); |
757 |
if ($execute_success) { # only proceed if the update was a success |
758 |
if ($execute_success) { # only proceed if the update was a success |
758 |
# ok if its an adult (type) it may have borrowers that depend on it as a guarantor |
759 |
# ok if its an adult (type) it may have borrowers that depend on it as a guarantor |
Lines 763-774
sub ModMember {
Link Here
|
763 |
# is adult check guarantees; |
764 |
# is adult check guarantees; |
764 |
UpdateGuarantees(%data); |
765 |
UpdateGuarantees(%data); |
765 |
} |
766 |
} |
|
|
767 |
|
768 |
# If the patron changes to a category with enrollment fee, we add a fee |
769 |
if ( $data{categorycode} and $data{categorycode} ne $old_categorycode ) { |
770 |
AddEnrolmentFeeIfNeeded( $data{categorycode}, $data{borrowernumber} ); |
771 |
} |
772 |
|
766 |
logaction("MEMBERS", "MODIFY", $data{'borrowernumber'}, "UPDATE (executed w/ arg: $data{'borrowernumber'})") if C4::Context->preference("BorrowersLog"); |
773 |
logaction("MEMBERS", "MODIFY", $data{'borrowernumber'}, "UPDATE (executed w/ arg: $data{'borrowernumber'})") if C4::Context->preference("BorrowersLog"); |
767 |
} |
774 |
} |
768 |
return $execute_success; |
775 |
return $execute_success; |
769 |
} |
776 |
} |
770 |
|
777 |
|
771 |
|
|
|
772 |
=head2 AddMember |
778 |
=head2 AddMember |
773 |
|
779 |
|
774 |
$borrowernumber = &AddMember(%borrower); |
780 |
$borrowernumber = &AddMember(%borrower); |
Lines 805-823
sub AddMember {
Link Here
|
805 |
|
811 |
|
806 |
# mysql_insertid is probably bad. not necessarily accurate and mysql-specific at best. |
812 |
# mysql_insertid is probably bad. not necessarily accurate and mysql-specific at best. |
807 |
logaction("MEMBERS", "CREATE", $data{'borrowernumber'}, "") if C4::Context->preference("BorrowersLog"); |
813 |
logaction("MEMBERS", "CREATE", $data{'borrowernumber'}, "") if C4::Context->preference("BorrowersLog"); |
808 |
|
814 |
|
809 |
# check for enrollment fee & add it if needed |
815 |
AddEnrolmentFeeIfNeeded( $data{categorycode}, $data{borrowernumber} ); |
810 |
my $sth = $dbh->prepare("SELECT enrolmentfee FROM categories WHERE categorycode=?"); |
|
|
811 |
$sth->execute($data{'categorycode'}); |
812 |
my ($enrolmentfee) = $sth->fetchrow; |
813 |
if ($sth->err) { |
814 |
warn sprintf('Database returned the following error: %s', $sth->errstr); |
815 |
return; |
816 |
} |
817 |
if ($enrolmentfee && $enrolmentfee > 0) { |
818 |
# insert fee in patron debts |
819 |
manualinvoice($data{'borrowernumber'}, '', '', 'A', $enrolmentfee); |
820 |
} |
821 |
|
816 |
|
822 |
return $data{'borrowernumber'}; |
817 |
return $data{'borrowernumber'}; |
823 |
} |
818 |
} |
Lines 1877-1891
UPDATE borrowers
Link Here
|
1877 |
SET dateexpiry='$date' |
1872 |
SET dateexpiry='$date' |
1878 |
WHERE borrowernumber='$borrowerid' |
1873 |
WHERE borrowernumber='$borrowerid' |
1879 |
EOF |
1874 |
EOF |
1880 |
# add enrolmentfee if needed |
1875 |
|
1881 |
$sth = $dbh->prepare("SELECT enrolmentfee FROM categories WHERE categorycode=?"); |
1876 |
AddEnrolmentFeeIfNeeded( $borrower->{categorycode}, $borrower->{borrowernumber} ); |
1882 |
$sth->execute($borrower->{'categorycode'}); |
1877 |
|
1883 |
my ($enrolmentfee) = $sth->fetchrow; |
1878 |
logaction("MEMBERS", "RENEW", $borrower->{'borrowernumber'}, "Membership renewed")if C4::Context->preference("BorrowersLog"); |
1884 |
if ($enrolmentfee && $enrolmentfee > 0) { |
|
|
1885 |
# insert fee in patron debts |
1886 |
manualinvoice($borrower->{'borrowernumber'}, '', '', 'A', $enrolmentfee); |
1887 |
} |
1888 |
logaction("MEMBERS", "RENEW", $borrower->{'borrowernumber'}, "Membership renewed")if C4::Context->preference("BorrowersLog"); |
1889 |
return $date if ($sth); |
1879 |
return $date if ($sth); |
1890 |
return 0; |
1880 |
return 0; |
1891 |
} |
1881 |
} |
Lines 2541-2546
sub AddMember_Opac {
Link Here
|
2541 |
return ( $borrowernumber, $password ); |
2531 |
return ( $borrowernumber, $password ); |
2542 |
} |
2532 |
} |
2543 |
|
2533 |
|
|
|
2534 |
=head2 AddEnroltmenFeeIfNeeded |
2535 |
|
2536 |
AddEnrolmentFeeIfNeeded( $borrower->{categorycode}, $borrower->{borrowernumber} ); |
2537 |
|
2538 |
Add enrolment fee for a patron if needed. |
2539 |
|
2540 |
=cut |
2541 |
|
2542 |
sub AddEnrolmentFeeIfNeeded { |
2543 |
my ( $categorycode, $borrowernumber ) = @_; |
2544 |
# check for enrollment fee & add it if needed |
2545 |
my $dbh = C4::Context->dbh; |
2546 |
my $sth = $dbh->prepare(q{ |
2547 |
SELECT enrolmentfee |
2548 |
FROM categories |
2549 |
WHERE categorycode=? |
2550 |
}); |
2551 |
$sth->execute( $categorycode ); |
2552 |
if ( $sth->err ) { |
2553 |
warn sprintf('Database returned the following error: %s', $sth->errstr); |
2554 |
return; |
2555 |
} |
2556 |
my ($enrolmentfee) = $sth->fetchrow; |
2557 |
if ($enrolmentfee && $enrolmentfee > 0) { |
2558 |
# insert fee in patron debts |
2559 |
C4::Accounts::manualinvoice( $borrowernumber, '', '', 'A', $enrolmentfee ); |
2560 |
} |
2561 |
} |
2562 |
|
2544 |
END { } # module clean-up code here (global destructor) |
2563 |
END { } # module clean-up code here (global destructor) |
2545 |
|
2564 |
|
2546 |
1; |
2565 |
1; |
2547 |
- |
|
|