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::Database;
Link Here
|
43 |
use Koha::Holds; |
43 |
use Koha::Holds; |
44 |
use Koha::List::Patron; |
44 |
use Koha::List::Patron; |
45 |
use Koha::Patrons; |
45 |
use Koha::Patrons; |
|
|
46 |
use Koha::Patron::Categories; |
46 |
|
47 |
|
47 |
our (@ISA,@EXPORT,@EXPORT_OK,$debug); |
48 |
our (@ISA,@EXPORT,@EXPORT_OK,$debug); |
48 |
|
49 |
|
Lines 88-94
BEGIN {
Link Here
|
88 |
&GetBorrowersWhoHaveNeverBorrowed |
89 |
&GetBorrowersWhoHaveNeverBorrowed |
89 |
&GetBorrowersWithIssuesHistoryOlderThan |
90 |
&GetBorrowersWithIssuesHistoryOlderThan |
90 |
|
91 |
|
91 |
&GetExpiryDate |
|
|
92 |
&GetUpcomingMembershipExpires |
92 |
&GetUpcomingMembershipExpires |
93 |
|
93 |
|
94 |
&IssueSlip |
94 |
&IssueSlip |
Lines 658-666
sub AddMember {
Link Here
|
658 |
if ( $data{'userid'} eq '' || !Check_Userid( $data{'userid'} ) ); |
658 |
if ( $data{'userid'} eq '' || !Check_Userid( $data{'userid'} ) ); |
659 |
|
659 |
|
660 |
# add expiration date if it isn't already there |
660 |
# add expiration date if it isn't already there |
661 |
unless ( $data{'dateexpiry'} ) { |
661 |
$data{dateexpiry} ||= Koha::Patron::Categories->find( $data{categorycode} )->get_expiry_date; |
662 |
$data{'dateexpiry'} = GetExpiryDate( $data{'categorycode'}, output_pref( { dt => dt_from_string, dateonly => 1, dateformat => 'iso' } ) ); |
|
|
663 |
} |
664 |
|
662 |
|
665 |
# add enrollment date if it isn't already there |
663 |
# add enrollment date if it isn't already there |
666 |
unless ( $data{'dateenrolled'} ) { |
664 |
unless ( $data{'dateenrolled'} ) { |
Lines 1224-1256
sub GetNoticeEmailAddress {
Link Here
|
1224 |
return $data->{'primaryemail'} || ''; |
1222 |
return $data->{'primaryemail'} || ''; |
1225 |
} |
1223 |
} |
1226 |
|
1224 |
|
1227 |
=head2 GetExpiryDate |
|
|
1228 |
|
1229 |
$expirydate = GetExpiryDate($categorycode, $dateenrolled); |
1230 |
|
1231 |
Calculate expiry date given a categorycode and starting date. Date argument must be in ISO format. |
1232 |
Return date is also in ISO format. |
1233 |
|
1234 |
=cut |
1235 |
|
1236 |
sub GetExpiryDate { |
1237 |
my ( $categorycode, $dateenrolled ) = @_; |
1238 |
my $enrolments; |
1239 |
if ($categorycode) { |
1240 |
my $dbh = C4::Context->dbh; |
1241 |
my $sth = $dbh->prepare("SELECT enrolmentperiod,enrolmentperioddate FROM categories WHERE categorycode=?"); |
1242 |
$sth->execute($categorycode); |
1243 |
$enrolments = $sth->fetchrow_hashref; |
1244 |
} |
1245 |
# die "GetExpiryDate: for enrollmentperiod $enrolmentperiod (category '$categorycode') starting $dateenrolled.\n"; |
1246 |
my @date = split (/-/,$dateenrolled); |
1247 |
if($enrolments->{enrolmentperiod}){ |
1248 |
return sprintf("%04d-%02d-%02d", Add_Delta_YM(@date,0,$enrolments->{enrolmentperiod})); |
1249 |
}else{ |
1250 |
return $enrolments->{enrolmentperioddate}; |
1251 |
} |
1252 |
} |
1253 |
|
1254 |
=head2 GetUpcomingMembershipExpires |
1225 |
=head2 GetUpcomingMembershipExpires |
1255 |
|
1226 |
|
1256 |
my $expires = GetUpcomingMembershipExpires({ |
1227 |
my $expires = GetUpcomingMembershipExpires({ |
Lines 1625-1631
sub ExtendMemberSubscriptionTo {
Link Here
|
1625 |
eval { output_pref( { dt => dt_from_string( $borrower->{'dateexpiry'} ), dateonly => 1, dateformat => 'iso' } ); } |
1596 |
eval { output_pref( { dt => dt_from_string( $borrower->{'dateexpiry'} ), dateonly => 1, dateformat => 'iso' } ); } |
1626 |
: |
1597 |
: |
1627 |
output_pref( { dt => dt_from_string, dateonly => 1, dateformat => 'iso' } ); |
1598 |
output_pref( { dt => dt_from_string, dateonly => 1, dateformat => 'iso' } ); |
1628 |
$date = GetExpiryDate( $borrower->{'categorycode'}, $date ); |
1599 |
$date = Koha::Patron::Categories->find( $borrower->{categorycode} )->get_expiry_date( $date ); |
1629 |
} |
1600 |
} |
1630 |
my $sth = $dbh->do(<<EOF); |
1601 |
my $sth = $dbh->do(<<EOF); |
1631 |
UPDATE borrowers |
1602 |
UPDATE borrowers |