|
Lines 945-953
Returns the number of patron's overdues
Link Here
|
| 945 |
=cut |
945 |
=cut |
| 946 |
|
946 |
|
| 947 |
sub has_overdues { |
947 |
sub has_overdues { |
| 948 |
my ($self) = @_; |
948 |
my ($self, $params) = @_; |
|
|
949 |
my $date = dt_from_string(); |
| 950 |
|
| 951 |
# If ignoring unrestricted overdues, calculate which delay value for |
| 952 |
# overdue messages is set with restrictions. Then only include overdue |
| 953 |
# issues older than that date when counting. |
| 954 |
if($params->{ignore_unrestricted}) { |
| 955 |
my $branchcode = $params->{issue_branchcode}; |
| 956 |
my $date_offset = _get_overdue_restrict_delay($params->{issue_branchcode}, $self->categorycode()); |
| 957 |
$date->subtract(days => $date_offset); |
| 958 |
} |
| 959 |
|
| 949 |
my $dtf = Koha::Database->new->schema->storage->datetime_parser; |
960 |
my $dtf = Koha::Database->new->schema->storage->datetime_parser; |
| 950 |
return $self->_result->issues->search({ date_due => { '<' => $dtf->format_datetime( dt_from_string() ) } })->count; |
961 |
return $self->_result->issues->search({ date_due => { '<' => $dtf->format_datetime( $date )} })->count; |
|
|
962 |
} |
| 963 |
|
| 964 |
# Fetch first delayX value from overduerules where debarredX is set, or 0 for no delay |
| 965 |
sub _get_overdue_restrict_delay { |
| 966 |
my ($branchcode, $categorycode) = @_; |
| 967 |
my $dbh = C4::Context->dbh(); |
| 968 |
|
| 969 |
my $query = "SELECT * FROM overduerules WHERE delay1 IS NOT NULL AND branchcode = ? AND categorycode = ?"; |
| 970 |
|
| 971 |
my $rqoverduerules = $dbh->prepare($query); |
| 972 |
$rqoverduerules->execute($branchcode, $categorycode); |
| 973 |
|
| 974 |
# We get default rules if there is no rule for this branch |
| 975 |
if($rqoverduerules->rows == 0){ |
| 976 |
$query = "SELECT * FROM overduerules WHERE delay1 IS NOT NULL AND branchcode = '' AND categorycode = ?"; |
| 977 |
|
| 978 |
$rqoverduerules = $dbh->prepare($query); |
| 979 |
$rqoverduerules->execute($categorycode); |
| 980 |
} |
| 981 |
|
| 982 |
while ( my $overdue_rules = $rqoverduerules->fetchrow_hashref ) { |
| 983 |
return $overdue_rules->{"delay1"} if($overdue_rules->{"debarred1"}); |
| 984 |
return $overdue_rules->{"delay2"} if($overdue_rules->{"debarred2"}); |
| 985 |
return $overdue_rules->{"delay3"} if($overdue_rules->{"debarred3"}); |
| 986 |
} |
| 987 |
|
| 988 |
return 0; |
| 951 |
} |
989 |
} |
| 952 |
|
990 |
|
| 953 |
=head3 track_login |
991 |
=head3 track_login |