From f311b26f2935657cc6031a6764de6946b0c5289b Mon Sep 17 00:00:00 2001 From: Kyle Hall Date: Thu, 23 Sep 2021 13:24:42 -0400 Subject: [PATCH] Bug 29100: Add checkouts data loop to predue notices script ( advance_notices.pl ) Predue / due notices are limited to using itemscontent to display checkouts data. It would be nice to make all the checkouts data available for those notices so that libraries could format that data more nicely if they wish. 1) Apply this patch 2) For DUE and PREDUE notices, set the message body to the following: Title: [% issue.title %] 3) For DUEDGST and PREDUEDGST notices, set the message body to the following: Titles: [% FOREACH i IN issues %] * [% i.title %] [% END %] 4) Generate PREDUE and DUE notices for patrons including digests 5) Verify those notices contain the checkout titles --- misc/cronjobs/advance_notices.pl | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/misc/cronjobs/advance_notices.pl b/misc/cronjobs/advance_notices.pl index f1df975c263..1f88367b12d 100755 --- a/misc/cronjobs/advance_notices.pl +++ b/misc/cronjobs/advance_notices.pl @@ -302,7 +302,9 @@ UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) { my $letter_type = 'DUE'; $sth->execute($upcoming->{'borrowernumber'},$upcoming->{'itemnumber'},'0'); my $titles = ""; + my @issues; while ( my $item_info = $sth->fetchrow_hashref()) { + push( @issues, $item_info ); $titles .= C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); } @@ -313,7 +315,10 @@ UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) { branchcode => $branchcode, biblionumber => $item->biblionumber, itemnumber => $upcoming->{'itemnumber'}, - substitute => { 'items.content' => $titles }, + substitute => { + 'items.content' => $titles, + issue => $issues[0], + }, message_transport_type => $transport, } ) or warn "no letter of type '$letter_type' found for borrowernumber ".$upcoming->{'borrowernumber'}.". Please see sample_notices.sql"; @@ -349,7 +354,9 @@ UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) { my $letter_type = 'PREDUE'; $sth->execute($upcoming->{'borrowernumber'},$upcoming->{'itemnumber'},$borrower_preferences->{'days_in_advance'}); my $titles = ""; + my @issues; while ( my $item_info = $sth->fetchrow_hashref()) { + push( @issues, $item_info ); $titles .= C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); } @@ -360,7 +367,10 @@ UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) { branchcode => $branchcode, biblionumber => $item->biblionumber, itemnumber => $upcoming->{'itemnumber'}, - substitute => { 'items.content' => $titles }, + substitute => { + 'items.content' => $titles, + issue => $issues[0], + }, message_transport_type => $transport, } ) or warn "no letter of type '$letter_type' found for borrowernumber ".$upcoming->{'borrowernumber'}.". Please see sample_notices.sql"; @@ -597,7 +607,9 @@ sub send_digests { borrower_preferences => $borrower_preferences }); my $titles = ""; + my @issues; while ( my $item_info = $next_item_info->()) { + push( @issues, $item_info ); $titles .= C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); } @@ -606,9 +618,11 @@ sub send_digests { { letter_code => $params->{letter_code}, borrowernumber => $borrowernumber, + issues => \@issues, substitute => { count => $count, 'items.content' => $titles, + issues => \@issues, %branch_info }, branchcode => $branchcode, -- 2.30.2