From 8c40dfca0bee1e53251a88b0d3c10a1da7ed9f96 Mon Sep 17 00:00:00 2001 From: Benjamin Rosketh Date: Mon, 2 Jun 2014 14:18:30 +0200 Subject: [PATCH] Bug 12344 - Multi transport types for issues and checkins This small patch corrects the order of generating notices for issues and returns (checkout/checkin) so that borrower's notices are rendered correctly (for sms,email,etc.) Test plan: 1) Edit SMSSendDriver syspref to use driver 'Test' 2) Edit CHECKOUT template for sms to 'SMS test' 3) select SMS for test patron's messaging prefs for item checkout 4) checkout an item 5) check the table message_queue, verify that template sms is not used (message content is not 'SMS test') 6) apply patch, make new checkout 7) check that message_queue table now has a correctly generated notice with 'SMS test' For a real world test use a real SMS::Send driver and run the cronjob process-message-queue.pl to send messages immediately. Signed-off-by: Sophie Meynieux Signed-off-by: Jonathan Druart Signed-off-by: Tomas Cohen Arazi (cherry picked from commit 2ab4a4287ba6081a872f1123fe44e5596c829bf1) Signed-off-by: Chris Cormack --- C4/Circulation.pm | 43 +++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index dd081afb15..29935739f7 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -3251,19 +3251,6 @@ sub SendCirculationAlert { message_name => $message_name{$type}, }); my $issues_table = ( $type eq 'CHECKOUT' || $type eq 'RENEWAL' ) ? 'issues' : 'old_issues'; - my $letter = C4::Letters::GetPreparedLetter ( - module => 'circulation', - letter_code => $type, - branchcode => $branch, - tables => { - $issues_table => $item->{itemnumber}, - 'items' => $item->{itemnumber}, - 'biblio' => $item->{biblionumber}, - 'biblioitems' => $item->{biblionumber}, - 'borrowers' => $borrower, - 'branches' => $branch, - } - ) or return; my @transports = keys %{ $borrower_preferences->{transports} }; # warn "no transports" unless @transports; @@ -3272,15 +3259,43 @@ sub SendCirculationAlert { my $message = C4::Message->find_last_message($borrower, $type, $_); if (!$message) { #warn "create new message"; + my $letter = C4::Letters::GetPreparedLetter ( + module => 'circulation', + letter_code => $type, + branchcode => $branch, + message_transport_type => $_, + tables => { + $issues_table => $item->{itemnumber}, + 'items' => $item->{itemnumber}, + 'biblio' => $item->{biblionumber}, + 'biblioitems' => $item->{biblionumber}, + 'borrowers' => $borrower, + 'branches' => $branch, + } + ) or return; C4::Message->enqueue($letter, $borrower, $_); } else { #warn "append to old message"; + my $letter = C4::Letters::GetPreparedLetter ( + module => 'circulation', + letter_code => $type, + branchcode => $branch, + message_transport_type => $_, + tables => { + $issues_table => $item->{itemnumber}, + 'items' => $item->{itemnumber}, + 'biblio' => $item->{biblionumber}, + 'biblioitems' => $item->{biblionumber}, + 'borrowers' => $borrower, + 'branches' => $branch, + } + ) or return; $message->append($letter); $message->update; } } - return $letter; + return; } =head2 updateWrongTransfer -- 2.39.5