@@ -, +, @@ C4::Members::IssueSlip are broken --- C4/Members.pm | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) --- a/C4/Members.pm +++ a/C4/Members.pm @@ -2434,20 +2434,28 @@ sub DeleteMessage { sub IssueSlip { my ($branch, $borrowernumber, $quickslip) = @_; -# return unless ( C4::Context->boolean_preference('printcirculationslips') ); - - my $now = POSIX::strftime("%Y-%m-%d", localtime); + my $now = dt_from_string(); + $now->truncate( to => 'day' ); my $issueslist = GetPendingIssues($borrowernumber); - foreach my $it (@$issueslist){ - if ((substr $it->{'issuedate'}, 0, 10) eq $now || (substr $it->{'lastreneweddate'}, 0, 10) eq $now) { + foreach my $it (@$issueslist) { + + my $dt_issuedate = dt_from_string( $it->{'issuedate'} ); + $dt_issuedate->truncate( to => 'day' ); + my $dt_lastreneweddate = dt_from_string( $it->{'lastreneweddate'} ); + $dt_lastreneweddate->truncate( to => 'day' ); + my $dt_date_due = dt_from_string( $it->{'date_due'} ); + $dt_date_due->truncate( to => 'day' ); + + if ( $dt_issuedate == $now || $dt_lastreneweddate == $now ) { $it->{'now'} = 1; } - elsif ((substr $it->{'date_due'}, 0, 10) le $now) { + elsif ( $dt_date_due < $now ) { $it->{'overdue'} = 1; } - my $dt = dt_from_string( $it->{'date_due'} ); - $it->{'date_due'} = output_pref( $dt );; + + # Recreate date_due as DateTime because we truncated the hours + $it->{'date_due'} = output_pref( dt_from_string( $it->{'date_due'} ) ); } my @issues = sort { $b->{'timestamp'} <=> $a->{'timestamp'} } @$issueslist; --