Lines 30-42
BEGIN {
Link Here
|
30 |
|
30 |
|
31 |
use Getopt::Long; |
31 |
use Getopt::Long; |
32 |
use Pod::Usage; |
32 |
use Pod::Usage; |
33 |
use Date::Calc qw(Add_Delta_Days); |
|
|
34 |
|
33 |
|
35 |
use C4::Context; |
34 |
use C4::Context; |
36 |
use C4::Items; |
35 |
use C4::Items; |
37 |
use C4::Letters; |
36 |
use C4::Letters; |
38 |
use C4::Overdues; |
37 |
use C4::Overdues; |
39 |
use C4::Calendar; |
38 |
use Koha::Calendar; |
40 |
use Koha::DateUtils; |
39 |
use Koha::DateUtils; |
41 |
|
40 |
|
42 |
sub usage { |
41 |
sub usage { |
Lines 292-313
sub GetWaitingHolds {
Link Here
|
292 |
$sth->execute(); |
291 |
$sth->execute(); |
293 |
my @results; |
292 |
my @results; |
294 |
while ( my $issue = $sth->fetchrow_hashref() ) { |
293 |
while ( my $issue = $sth->fetchrow_hashref() ) { |
295 |
my $calendar = C4::Calendar->new( branchcode => $issue->{'site'} ); |
294 |
my $calendar = Koha::Calendar->new( branchcode => $issue->{'site'} ); |
296 |
|
295 |
|
297 |
my ( $waiting_year, $waiting_month, $waiting_day ) = split( /-/, $issue->{'waitingdate'} ); |
296 |
my $waiting_date = dt_from_string( $issue->{waitingdate}, 'sql' ); |
298 |
my ( $pickup_year, $pickup_month, $pickup_day ) = Add_Delta_Days( $waiting_year, $waiting_month, $waiting_day, $pickupdelay ); |
297 |
my $pickup_date = $waiting_date->clone->add( days => $pickupdelay ); |
299 |
|
298 |
if ( $calendar->is_holiday($pickup_date) ) { |
300 |
while ( $calendar->isHoliday( $pickup_day, $pickup_month, $pickup_year ) ) { |
299 |
$pickup_date = $calendar->next_open_day( $pickup_date ); |
301 |
( $pickup_year, $pickup_month, $pickup_day ) = Add_Delta_Days( $pickup_year, $pickup_month, $pickup_day, 1 ); |
|
|
302 |
} |
300 |
} |
303 |
|
301 |
|
304 |
$issue->{'date_due'} = sprintf( "%04d-%02d-%02d", $pickup_year, $pickup_month, $pickup_day ); |
302 |
$issue->{'date_due'} = output_pref({dt => $pickup_date, dateformat => 'iso' }); |
305 |
$issue->{'level'} = 1; # only one level for Hold Waiting notifications |
303 |
$issue->{'level'} = 1; # only one level for Hold Waiting notifications |
306 |
|
304 |
|
307 |
my $days_to_subtract = 0; |
305 |
my $days_to_subtract = 0; |
308 |
while ( $calendar->isHoliday( reverse( Add_Delta_Days( $waiting_year, $waiting_month, $waiting_day, $days_to_subtract ) ) ) ) { |
306 |
if ( $calendar->is_holiday($waiting_date) ) { |
309 |
$days_to_subtract++; |
307 |
my $next_open_day = $calendar->next_open_day( $waiting_date ); |
|
|
308 |
$days_to_subtract = $calendar->days_between($waiting_date, $next_open_day)->days; |
310 |
} |
309 |
} |
|
|
310 |
|
311 |
$issue->{'days_since_waiting'} = $issue->{'days_since_waiting'} - $days_to_subtract; |
311 |
$issue->{'days_since_waiting'} = $issue->{'days_since_waiting'} - $days_to_subtract; |
312 |
|
312 |
|
313 |
if ( ( grep $_ eq $issue->{'days_since_waiting'}, @holds_waiting_days_to_call ) |
313 |
if ( ( grep $_ eq $issue->{'days_since_waiting'}, @holds_waiting_days_to_call ) |
314 |
- |
|
|