@@ -, +, @@ --- Koha/Calendar.pm | 19 ++++++++++++------- 1 files changed, 12 insertions(+), 7 deletions(-) --- a/Koha/Calendar.pm +++ a/Koha/Calendar.pm @@ -173,14 +173,19 @@ sub days_between { my $dateend_temp = $end_dt->clone(); # start and end should not be closed days + $datestart_temp->truncate( to => 'day' ); + $dateend_temp->truncate( to => 'day' ); 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 ); - } + # if borrower is not late, delta days must be negative + if(DateTime->compare( $start_dt, $end_dt ) > -1){ + $duration = $duration->inverse; + } else { + while ( DateTime->compare( $datestart_temp, $dateend_temp ) == -1 ) { + $datestart_temp->add( days => 1 ); + if ( $self->is_holiday($datestart_temp) ) { + $duration->subtract( days => 1 ); + } + } } return $duration; --