From 51c07cf356823600ac6ea327d2bcd24b13785abd Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Fri, 4 Jan 2013 08:04:25 -0500 Subject: [PATCH] Bug 9348 - Format dates in HOLD notices consistently Right now notices for holds awaiting pickup read something like this: You have a hold available for pickup as of 2011-02-12. This hold will expire if it is not picked up before: 02/22/2011. If you no longer need this item or have any questions please contact us Both dates should be formatting based on the dateformat system preference. Test Plan: 1) Apply patch 2) Set the HOLD notice to the following: <> / <> 3) Place a hold for a patron 4) Enable the HOLD notice via email for that patron ( requires EnhancedMessaging ) 5) Check the item in 6) Go to the borrower's Notices tab, check the body of the new HOLD notice, it should have two dates separated by a '/' in the format set by the dateformat system preference. Signed-off-by: Owen Leonard Patch works as advertised according to the test plan. Signed-off-by: Jonathan Druart Signed-off-by: Jared Camins-Esakov Tested also with the HOLD_PRINT notice. --- C4/Letters.pm | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/C4/Letters.pm b/C4/Letters.pm index 36e62133d9..8873c46bef 100644 --- a/C4/Letters.pm +++ b/C4/Letters.pm @@ -29,6 +29,8 @@ use C4::Branch; use C4::Log; use C4::SMS; use C4::Debug; +use Koha::DateUtils; + use Date::Calc qw( Add_Delta_Days ); use Encode; use Carp; @@ -600,17 +602,15 @@ my %columns = (); sub _parseletter { my ( $letter, $table, $values ) = @_; - # TEMPORARY hack until the expirationdate column is added to reserves if ( $table eq 'reserves' && $values->{'waitingdate'} ) { my @waitingdate = split /-/, $values->{'waitingdate'}; - $values->{'expirationdate'} = C4::Dates->new( - sprintf( - '%04d-%02d-%02d', - Add_Delta_Days( @waitingdate, C4::Context->preference( 'ReservesMaxPickUpDelay' ) ) - ), - 'iso' - )->output(); + my $dt = dt_from_string(); + $dt->add( days => C4::Context->preference('ReservesMaxPickUpDelay') ); + $values->{'expirationdate'} = output_pref( $dt, undef, 1 ); + + $values->{'waitingdate'} = output_pref( dt_from_string( $values->{'waitingdate'} ), undef, 1 ); + } if ($letter->{content} && $letter->{content} =~ /<>/) { @@ -619,13 +619,6 @@ sub _parseletter { $letter->{content} =~ s/<>/$todaysdate/go; } - # and get all fields from the table -# my $columns = $columns{$table}; -# unless ($columns) { -# $columns = $columns{$table} = C4::Context->dbh->selectcol_arrayref("SHOW COLUMNS FROM $table"); -# } -# foreach my $field (@$columns) { - while ( my ($field, $val) = each %$values ) { my $replacetablefield = "<<$table.$field>>"; my $replacefield = "<<$field>>"; -- 2.39.5