|
Lines 25-31
use strict;
Link Here
|
| 25 |
use C4::Context; |
25 |
use C4::Context; |
| 26 |
use String::Random qw( random_string ); |
26 |
use String::Random qw( random_string ); |
| 27 |
use Scalar::Util qw( looks_like_number ); |
27 |
use Scalar::Util qw( looks_like_number ); |
| 28 |
use Date::Calc qw/Today Add_Delta_YM check_date Date_to_Days/; |
28 |
use Date::Calc qw/Today check_date Date_to_Days/; |
| 29 |
use C4::Log; # logaction |
29 |
use C4::Log; # logaction |
| 30 |
use C4::Overdues; |
30 |
use C4::Overdues; |
| 31 |
use C4::Reserves; |
31 |
use C4::Reserves; |
|
Lines 43-48
use Koha::AuthUtils qw(hash_password);
Link Here
|
| 43 |
use Koha::Database; |
43 |
use Koha::Database; |
| 44 |
use Koha::Holds; |
44 |
use Koha::Holds; |
| 45 |
use Koha::List::Patron; |
45 |
use Koha::List::Patron; |
|
|
46 |
use Koha::Patrons; |
| 47 |
use Koha::Patron::Categories; |
| 46 |
|
48 |
|
| 47 |
our (@ISA,@EXPORT,@EXPORT_OK,$debug); |
49 |
our (@ISA,@EXPORT,@EXPORT_OK,$debug); |
| 48 |
|
50 |
|
|
Lines 89-95
BEGIN {
Link Here
|
| 89 |
&GetBorrowersWhoHaveNeverBorrowed |
91 |
&GetBorrowersWhoHaveNeverBorrowed |
| 90 |
&GetBorrowersWithIssuesHistoryOlderThan |
92 |
&GetBorrowersWithIssuesHistoryOlderThan |
| 91 |
|
93 |
|
| 92 |
&GetExpiryDate |
|
|
| 93 |
&GetUpcomingMembershipExpires |
94 |
&GetUpcomingMembershipExpires |
| 94 |
|
95 |
|
| 95 |
&IssueSlip |
96 |
&IssueSlip |
|
Lines 694-702
sub AddMember {
Link Here
|
| 694 |
if ( $data{'userid'} eq '' || !Check_Userid( $data{'userid'} ) ); |
695 |
if ( $data{'userid'} eq '' || !Check_Userid( $data{'userid'} ) ); |
| 695 |
|
696 |
|
| 696 |
# add expiration date if it isn't already there |
697 |
# add expiration date if it isn't already there |
| 697 |
unless ( $data{'dateexpiry'} ) { |
698 |
$data{dateexpiry} ||= Koha::Patron::Categories->find( $data{categorycode} )->get_expiry_date; |
| 698 |
$data{'dateexpiry'} = GetExpiryDate( $data{'categorycode'}, output_pref( { dt => dt_from_string, dateonly => 1, dateformat => 'iso' } ) ); |
|
|
| 699 |
} |
| 700 |
|
699 |
|
| 701 |
# add enrollment date if it isn't already there |
700 |
# add enrollment date if it isn't already there |
| 702 |
unless ( $data{'dateenrolled'} ) { |
701 |
unless ( $data{'dateenrolled'} ) { |
|
Lines 1327-1359
sub GetNoticeEmailAddress {
Link Here
|
| 1327 |
return $data->{'primaryemail'} || ''; |
1326 |
return $data->{'primaryemail'} || ''; |
| 1328 |
} |
1327 |
} |
| 1329 |
|
1328 |
|
| 1330 |
=head2 GetExpiryDate |
|
|
| 1331 |
|
| 1332 |
$expirydate = GetExpiryDate($categorycode, $dateenrolled); |
| 1333 |
|
| 1334 |
Calculate expiry date given a categorycode and starting date. Date argument must be in ISO format. |
| 1335 |
Return date is also in ISO format. |
| 1336 |
|
| 1337 |
=cut |
| 1338 |
|
| 1339 |
sub GetExpiryDate { |
| 1340 |
my ( $categorycode, $dateenrolled ) = @_; |
| 1341 |
my $enrolments; |
| 1342 |
if ($categorycode) { |
| 1343 |
my $dbh = C4::Context->dbh; |
| 1344 |
my $sth = $dbh->prepare("SELECT enrolmentperiod,enrolmentperioddate FROM categories WHERE categorycode=?"); |
| 1345 |
$sth->execute($categorycode); |
| 1346 |
$enrolments = $sth->fetchrow_hashref; |
| 1347 |
} |
| 1348 |
# die "GetExpiryDate: for enrollmentperiod $enrolmentperiod (category '$categorycode') starting $dateenrolled.\n"; |
| 1349 |
my @date = split (/-/,$dateenrolled); |
| 1350 |
if($enrolments->{enrolmentperiod}){ |
| 1351 |
return sprintf("%04d-%02d-%02d", Add_Delta_YM(@date,0,$enrolments->{enrolmentperiod})); |
| 1352 |
}else{ |
| 1353 |
return $enrolments->{enrolmentperioddate}; |
| 1354 |
} |
| 1355 |
} |
| 1356 |
|
| 1357 |
=head2 GetUpcomingMembershipExpires |
1329 |
=head2 GetUpcomingMembershipExpires |
| 1358 |
|
1330 |
|
| 1359 |
my $expires = GetUpcomingMembershipExpires({ |
1331 |
my $expires = GetUpcomingMembershipExpires({ |
|
Lines 1728-1734
sub ExtendMemberSubscriptionTo {
Link Here
|
| 1728 |
eval { output_pref( { dt => dt_from_string( $borrower->{'dateexpiry'} ), dateonly => 1, dateformat => 'iso' } ); } |
1700 |
eval { output_pref( { dt => dt_from_string( $borrower->{'dateexpiry'} ), dateonly => 1, dateformat => 'iso' } ); } |
| 1729 |
: |
1701 |
: |
| 1730 |
output_pref( { dt => dt_from_string, dateonly => 1, dateformat => 'iso' } ); |
1702 |
output_pref( { dt => dt_from_string, dateonly => 1, dateformat => 'iso' } ); |
| 1731 |
$date = GetExpiryDate( $borrower->{'categorycode'}, $date ); |
1703 |
$date = Koha::Patron::Categories->find( $borrower->{categorycode} )->get_expiry_date( $date ); |
| 1732 |
} |
1704 |
} |
| 1733 |
my $sth = $dbh->do(<<EOF); |
1705 |
my $sth = $dbh->do(<<EOF); |
| 1734 |
UPDATE borrowers |
1706 |
UPDATE borrowers |