@@ -, +, @@ compatible --- C4/Letters.pm | 4 +++- t/db_dependent/Letters/TemplateToolkit.t | 30 +++++++++++++++++++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) --- a/C4/Letters.pm +++ a/C4/Letters.pm @@ -782,6 +782,7 @@ sub GetPreparedLetter { content => $letter->{content}, tables => $tables, loops => $loops, + substitute => $substitute, } ); @@ -1455,6 +1456,7 @@ sub _process_tt { my $content = $params->{content}; my $tables = $params->{tables}; my $loops = $params->{loops}; + my $substitute = $params->{substitute} || {}; my $use_template_cache = C4::Context->config('template_cache_dir') && defined $ENV{GATEWAY_INTERFACE}; my $template = Template->new( @@ -1469,7 +1471,7 @@ sub _process_tt { } ) or die Template->error(); - my $tt_params = { %{ _get_tt_params( $tables ) }, %{ _get_tt_params( $loops, 'is_a_loop' ) } }; + my $tt_params = { %{ _get_tt_params( $tables ) }, %{ _get_tt_params( $loops, 'is_a_loop' ) }, %$substitute }; $content = qq|[% USE KohaDates %]$content|; --- a/t/db_dependent/Letters/TemplateToolkit.t +++ a/t/db_dependent/Letters/TemplateToolkit.t @@ -286,7 +286,7 @@ $prepared_letter = GetPreparedLetter( is( $prepared_letter->{content}, $modification->id(), 'Patron modification object used correctly' ); subtest 'regression tests' => sub { - plan tests => 3; + plan tests => 4; my $library = $builder->build( { source => 'Branch' } ); my $patron = $builder->build( { source => 'Borrower' } ); @@ -472,6 +472,34 @@ Thank you for visiting [% branch.branchname %]. is( $second_checkin_tt_letter->content, $second_checkin_letter->content, 'Verify second checkin letter' ); }; + + subtest 'DUEDGST|count' => sub { + plan tests => 1; + + my $code = 'DUEDGST'; + + my $dbh = C4::Context->dbh; + # Enable notification for DUEDGST - Things are hardcoded here but should work with default data + $dbh->do(q|INSERT INTO borrower_message_preferences( borrowernumber, message_attribute_id ) VALUES ( ?, ? )|, undef, $patron->{borrowernumber}, 1 ); + my $borrower_message_preference_id = $dbh->last_insert_id(undef, undef, "borrower_message_preferences", undef); + $dbh->do(q|INSERT INTO borrower_message_transport_preferences( borrower_message_preference_id, message_transport_type) VALUES ( ?, ? )|, undef, $borrower_message_preference_id, 'email' ); + + my $params = { + code => $code, + substitute => { count => 42 }, + }; + + my $template = q| +You have <> items due + |; + my $letter = process_letter( { template => $template, %$params }); + + my $tt_template = q| +You have [% count %] items due + |; + my $tt_letter = process_letter( { template => $tt_template, %$params }); + is( $tt_letter->{content}, $letter->{content}, ); + }; }; subtest 'loops' => sub { --