Browse Source

Bug 5549 : Koha::Calendar allow negative offset to addDate

3.8.x
Colin Campbell 13 years ago
committed by Chris Cormack
parent
commit
5b2260ae85
  1. 11
      Koha/Calendar.pm

11
Koha/Calendar.pm

@ -4,6 +4,7 @@ use warnings;
use 5.010;
use DateTime;
use DateTime::Set;
use C4::Context;
use Carp;
use Readonly;
@ -80,13 +81,17 @@ sub addDate {
my ( $self, $base_date, $add_duration, $unit ) = @_;
my $days_mode = C4::Context->preference('useDaysMode');
Readonly::Scalar my $return_by_hour => 10;
my $day_dur = DateTime::Duration->new( days => 1);
if ($add_duration->is_negative()) {
$day_dur->inverse();
}
if ( $days_mode eq 'Datedue' ) {
my $dt = $base_date + $add_duration;
while ( $self->is_holiday($dt) ) {
# TODOP if hours set to 10 am
$dt->add( days => 1 );
$dt->add_duration( $day_dur );
if ( $unit eq 'hours' ) {
$dt->set_hour($return_by_hour); # Staffs specific
}
@ -95,7 +100,7 @@ sub addDate {
} elsif ( $days_mode eq 'Calendar' ) {
my $days = $add_duration->in_units('days');
while ($days) {
$base_date->add( days => 1 );
$base_date->add_duration( $day_dur );
if ( $self->is_holiday($base_date) ) {
next;
} else {
@ -121,7 +126,7 @@ sub is_holiday {
if (@matches) {
return 1;
}
$dt->truncate('days');
$dt->truncate(to => 'days');
my $day = $dt->day;
my $month = $dt->month;
for my $dm ( @{ $self->{day_month_closed_days} } ) {

Loading…
Cancel
Save