use C4::Log;
use C4::SMS;
use C4::Debug;
+use Koha::DateUtils;
use Date::Calc qw( Add_Delta_Days );
use Encode;
use Carp;
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} =~ /<<today>>/) {
- my @da = localtime();
- my $todaysdate = "$da[2]:$da[1] " . C4::Dates->today();
+ my $todaysdate = output_pref( DateTime->now() );
$letter->{content} =~ s/<<today>>/$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>>";
- $val =~ s/\p{P}(?=$)//g if $val;
+ $val =~ s/\p{P}$// if $val && $table=~/biblio/;
+ #BZ 9886: Assuming that we want to eliminate ISBD punctuation here
+ #Therefore adding the test on biblio. This includes biblioitems,
+ #but excludes items. Removed unneeded global and lookahead.
+
my $replacedby = defined ($val) ? $val : '';
($letter->{title} ) and do {
$letter->{title} =~ s/$replacetablefield/$replacedby/g;
status => 'failed' } );
return;
}
- my $which_address = C4::Context->preference('AutoEmailPrimaryAddress');
- # If the system preference is set to 'first valid' (value == OFF), look up email address
- if ($which_address eq 'OFF') {
- $to_address = GetFirstValidEmailAddress( $message->{'borrowernumber'} );
- } else {
- $to_address = $member->{$which_address};
- }
+ $to_address = C4::Members::GetNoticeEmailAddress( $message->{'borrowernumber'} );
unless ($to_address) {
# warn "FAIL: No 'to_address' and no email for " . ($member->{surname} ||'') . ", borrowernumber ($message->{borrowernumber})";
# warning too verbose for this more common case?