Lines 993-1001
Returns the number of patron's overdues
Link Here
|
993 |
=cut |
993 |
=cut |
994 |
|
994 |
|
995 |
sub has_overdues { |
995 |
sub has_overdues { |
996 |
my ($self) = @_; |
996 |
my ($self, $params) = @_; |
|
|
997 |
my $date = dt_from_string(); |
998 |
|
999 |
# If ignoring unrestricted overdues, calculate which delay value for |
1000 |
# overdue messages is set with restrictions. Then only include overdue |
1001 |
# issues older than that date when counting. |
1002 |
if($params->{ignore_unrestricted}) { |
1003 |
my $branchcode = $params->{issue_branchcode}; |
1004 |
my $date_offset = _get_overdue_restrict_delay($params->{issue_branchcode}, $self->categorycode()); |
1005 |
$date->subtract(days => $date_offset); |
1006 |
} |
1007 |
|
997 |
my $dtf = Koha::Database->new->schema->storage->datetime_parser; |
1008 |
my $dtf = Koha::Database->new->schema->storage->datetime_parser; |
998 |
return $self->_result->issues->search({ date_due => { '<' => $dtf->format_datetime( dt_from_string() ) } })->count; |
1009 |
return $self->_result->issues->search({ date_due => { '<' => $dtf->format_datetime( $date )} })->count; |
|
|
1010 |
} |
1011 |
|
1012 |
# Fetch first delayX value from overduerules where debarredX is set, or 0 for no delay |
1013 |
sub _get_overdue_restrict_delay { |
1014 |
my ($branchcode, $categorycode) = @_; |
1015 |
my $dbh = C4::Context->dbh(); |
1016 |
|
1017 |
my $query = "SELECT * FROM overduerules WHERE delay1 IS NOT NULL AND branchcode = ? AND categorycode = ?"; |
1018 |
|
1019 |
my $rqoverduerules = $dbh->prepare($query); |
1020 |
$rqoverduerules->execute($branchcode, $categorycode); |
1021 |
|
1022 |
# We get default rules if there is no rule for this branch |
1023 |
if($rqoverduerules->rows == 0){ |
1024 |
$query = "SELECT * FROM overduerules WHERE delay1 IS NOT NULL AND branchcode = '' AND categorycode = ?"; |
1025 |
|
1026 |
$rqoverduerules = $dbh->prepare($query); |
1027 |
$rqoverduerules->execute($categorycode); |
1028 |
} |
1029 |
|
1030 |
while ( my $overdue_rules = $rqoverduerules->fetchrow_hashref ) { |
1031 |
return $overdue_rules->{"delay1"} if($overdue_rules->{"debarred1"}); |
1032 |
return $overdue_rules->{"delay2"} if($overdue_rules->{"debarred2"}); |
1033 |
return $overdue_rules->{"delay3"} if($overdue_rules->{"debarred3"}); |
1034 |
} |
1035 |
|
1036 |
return 0; |
999 |
} |
1037 |
} |
1000 |
|
1038 |
|
1001 |
=head3 track_login |
1039 |
=head3 track_login |