Bugzilla – Attachment 153513 Details for
Bug 33992
Only consider the date when labelling a waiting recall as problematic
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 33992: Only consider the date when auto-expiring problematic recalls
Bug-33992-Only-consider-the-date-when-auto-expirin.patch (text/plain), 3.72 KB, created by
Katrin Fischer
on 2023-07-16 11:11:58 UTC
(
hide
)
Description:
Bug 33992: Only consider the date when auto-expiring problematic recalls
Filename:
MIME Type:
Creator:
Katrin Fischer
Created:
2023-07-16 11:11:58 UTC
Size:
3.72 KB
patch
obsolete
>From 42e6da7cbfc502ede6c83569caf4ef493b731568 Mon Sep 17 00:00:00 2001 >From: Aleisha Amohia <aleishaamohia@hotmail.com> >Date: Tue, 13 Jun 2023 17:29:22 +1200 >Subject: [PATCH] Bug 33992: Only consider the date when auto-expiring > problematic recalls > >This patch carries this fix into the misc/cronjobs/recalls/expire_recalls.pl cronjob so that recalls are automatically expired when they have been waiting a problematic number of days, not considering hours, as expected. > >To test, follow the test plan from the first patch. This will set you up with a waiting problematic recall. > >Run the cronjob manually > >perl misc/cronjobs/recalls/expire_recalls.pl > >Refresh your 'Recalls awaiting pickup' page. Your problematic recall should be gone/expired. > >Expiration dates will apply when expiring any 'unfulfilled' recall i.e. newly requested, overdue to be returned, and awaiting pickup. > >Sponsored-by: Auckland University of Technology >Signed-off-by: David Nind <david@davidnind.com> >Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> >--- > misc/cronjobs/recalls/expire_recalls.pl | 19 +++++++++++-------- > 1 file changed, 11 insertions(+), 8 deletions(-) > >diff --git a/misc/cronjobs/recalls/expire_recalls.pl b/misc/cronjobs/recalls/expire_recalls.pl >index 7e57398614..71d9c2bcae 100755 >--- a/misc/cronjobs/recalls/expire_recalls.pl >+++ b/misc/cronjobs/recalls/expire_recalls.pl >@@ -40,10 +40,14 @@ my $command_line_options = join(" ",@ARGV); > cronlogaction({ info => $command_line_options }); > > my $recalls = Koha::Recalls->search({ completed => 0 }); >+my $today = dt_from_string()->truncate( to => 'day' ); > while( my $recall = $recalls->next ) { >- if ( ( $recall->requested or $recall->overdue ) and $recall->expiration_date and dt_from_string( $recall->expiration_date ) < dt_from_string() ){ >- # recall is requested or overdue and has surpassed the specified expiration date >- $recall->set_expired({ interface => 'COMMANDLINE' }); >+ if ( ( $recall->requested or $recall->overdue or $recall->waiting ) and $recall->expiration_date ) { >+ my $expiration_date = dt_from_string( $recall->expiration_date )->truncate( to => 'day' ); >+ if ( $expiration_date < $today ){ >+ # recall is requested or overdue and has surpassed the specified expiration date >+ $recall->set_expired({ interface => 'COMMANDLINE' }); >+ } > } > if ( $recall->waiting ) { > my $recall_shelf_time = Koha::CirculationRules->get_effective_rule({ >@@ -52,16 +56,15 @@ while( my $recall = $recalls->next ) { > branchcode => $recall->pickup_library_id, > rule_name => 'recall_shelf_time', > }); >- my $waitingdate = dt_from_string( $recall->waiting_date ); >- my $now = dt_from_string(); >- my $days_waiting = $now->subtract_datetime( $waitingdate ); >- if ( defined $recall_shelf_time and $recall_shelf_time->rule_value > 0 ) { >+ my $waitingdate = dt_from_string( $recall->waiting_date )->truncate( to => 'day' ); >+ my $days_waiting = $today->subtract_datetime( $waitingdate ); >+ if ( defined $recall_shelf_time and $recall_shelf_time->rule_value >= 0 ) { > if ( $days_waiting->days > $recall_shelf_time->rule_value ) { > # recall has been awaiting pickup for longer than the circ rules allow > $recall->set_expired({ interface => 'COMMANDLINE' }); > } > } else { >- if ( $days_waiting->days > C4::Context->preference('RecallsMaxPickUpDelay') ) { >+ if ( $days_waiting->days >= C4::Context->preference('RecallsMaxPickUpDelay') ) { > # recall has been awaiting pickup for longer than the syspref allows > $recall->set_expired({ interface => 'COMMANDLINE' }); > } >-- >2.30.2
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 33992
:
152288
|
152289
|
152363
|
152364
|
152365
|
152368
|
152369
|
153512
| 153513