From 4205d588fdd11311c12e78494af8224d899f6e1d 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 Signed-off-by: Felicity Brown Signed-off-by: Katrin Fischer Signed-off-by: Tomas Cohen Arazi (cherry picked from commit 2114c70d11b077d83db4bdf9f3e85598e96cf2cb) Signed-off-by: Pedro Amorim --- 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 efa0f49e17..4ea14ed07f 100755 --- a/misc/cronjobs/advance_notices.pl +++ b/misc/cronjobs/advance_notices.pl @@ -294,7 +294,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 } ); } @@ -306,7 +308,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"; @@ -342,7 +347,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 } ); } @@ -354,7 +361,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"; @@ -593,8 +603,10 @@ sub send_digests { }); my $titles = ""; my @itemnumbers; + my @issues; while ( my $item_info = $next_item_info->()) { push @itemnumbers, $item_info->{itemnumber}; + push( @issues, $item_info ); $titles .= C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); } @@ -604,9 +616,11 @@ sub send_digests { { letter_code => $params->{letter_code}, borrowernumber => $borrowernumber, + issues => \@issues, substitute => { count => $count, 'items.content' => $titles, + issues => \@issues, %branch_info }, itemnumbers => \@itemnumbers, -- 2.39.5