From e4e13f00418896d9b51fe2372ca694b8f9a80791 Mon Sep 17 00:00:00 2001 From: Adrien Saurat Date: Mon, 7 May 2012 16:11:11 +0200 Subject: [PATCH] Bug 8045: fixes "date due" when checking in Added cloning of object parameters in "days_between" method. --- Koha/Calendar.pm | 15 +++++++++------ 1 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Koha/Calendar.pm b/Koha/Calendar.pm index 75c5c9e..f63e7eb 100644 --- a/Koha/Calendar.pm +++ b/Koha/Calendar.pm @@ -169,13 +169,16 @@ sub days_between { my $start_dt = shift; my $end_dt = shift; + my $datestart_temp = $start_dt->clone(); + my $dateend_temp = $end_dt->clone(); + # start and end should not be closed days - my $duration = $end_dt->delta_days($start_dt); - $start_dt->truncate( to => 'days' ); - $end_dt->truncate( to => 'days' ); - while ( DateTime->compare( $start_dt, $end_dt ) == -1 ) { - $start_dt->add( days => 1 ); - if ( $self->is_holiday($start_dt) ) { + my $duration = $dateend_temp->delta_days($datestart_temp); + $datestart_temp->truncate( to => 'days' ); + $dateend_temp->truncate( to => 'days' ); + while ( DateTime->compare( $datestart_temp, $dateend_temp ) == -1 ) { + $datestart_temp->add( days => 1 ); + if ( $self->is_holiday($datestart_temp) ) { $duration->subtract( days => 1 ); } } -- 1.7.4.1