@@ -, +, @@ Notices misc/cronjobs/thirdparty/TalkingTech_itiva_outbound.pl --- C4/Letters.pm | 17 ++++++++- .../thirdparty/TalkingTech_itiva_outbound.pl | 44 +++++++++++++++------- 2 files changed, 46 insertions(+), 15 deletions(-) --- a/C4/Letters.pm +++ a/C4/Letters.pm @@ -708,6 +708,7 @@ sub GetPreparedLetter { { content => $letter->{content}, tables => $tables, + substitute => $substitute, } ); @@ -949,7 +950,16 @@ ENDSQL $params->{'from_address'}, # from_address $params->{'letter'}->{'content-type'}, # content_type ); - return $dbh->last_insert_id(undef,undef,'message_queue', undef); + + my $id = $dbh->last_insert_id(undef,undef,'message_queue', undef); + + $content = $params->{letter}->{content}; + if ( $content =~ /__MESSAGE_ID__/ ) { + $content =~ s/__MESSAGE_ID__/$id/g; + $dbh->do( "UPDATE message_queue SET content = ? WHERE message_id = ?", undef, ($content, $id) ); + } + + return $id; } =head2 SendQueuedMessages ([$hashref]) @@ -1374,6 +1384,7 @@ sub _process_tt { my $content = $params->{content}; my $tables = $params->{tables}; + my $substitute = $params->{substitute}; my $use_template_cache = C4::Context->config('template_cache_dir') && defined $ENV{GATEWAY_INTERFACE}; my $template = Template->new( @@ -1388,7 +1399,9 @@ sub _process_tt { } ) or die Template->error(); - my $tt_params = _get_tt_params( $tables ); + my $table_params = _get_tt_params( $tables ); + + my $tt_params = $substitute ? { %$substitute, %$table_params } : $table_params; my $output; $template->process( \$content, $tt_params, \$output ) || croak "ERROR PROCESSING TEMPLATE: " . $template->error(); --- a/misc/cronjobs/thirdparty/TalkingTech_itiva_outbound.pl +++ a/misc/cronjobs/thirdparty/TalkingTech_itiva_outbound.pl @@ -57,6 +57,7 @@ my @holds_waiting_days_to_call; my $library_code; my $help; my $outfile; +my $use_tt; # maps to convert I-tiva terms to Koha terms my $type_module_map = { @@ -73,12 +74,13 @@ my $type_notice_map = { GetOptions( 'o|output:s' => \$outfile, - 'v' => \$verbose, - 'lang:s' => \$language, - 'type:s' => \@types, + 'v|verbose' => \$verbose, + 'l|lang:s' => \$language, + 't|type:s' => \@types, 'w|waiting-hold-day:s' => \@holds_waiting_days_to_call, 'c|code|library-code:s' => \$library_code, - 'help|h' => \$help, + 'tt|template-toolkit' => \$use_tt, + 'h|help' => \$help, ); $language = uc($language); @@ -124,9 +126,20 @@ foreach my $type (@types) { module => $module, letter_code => $code, tables => { - borrowers => $issues->{'borrowernumber'}, - biblio => $issues->{'biblionumber'}, - biblioitems => $issues->{'biblionumber'}, + borrowers => $issues->{borrowernumber}, + biblio => $issues->{biblionumber}, + biblioitems => $issues->{biblionumber}, + items => $issues->{itemnumber}, + issues => $issues->{itemnumber}, + branches => $issues->{site}, + }, + substitute => { + format => $format, + language => $language, + type => $type, + level => $issues->{level}, + library_code => $library_code, + due_date => $due_date, }, message_transport_type => 'phone', ); @@ -143,9 +156,14 @@ foreach my $type (@types) { ); } - print $OUT "\"$format\",\"$language\",\"$type\",\"$issues->{level}\",\"$issues->{cardnumber}\",\"$issues->{patron_title}\",\"$issues->{firstname}\","; - print $OUT "\"$issues->{surname}\",\"$issues->{phone}\",\"$issues->{email}\",\"$library_code\","; - print $OUT "\"$issues->{site}\",\"$issues->{site_name}\",\"$issues->{barcode}\",\"$due_date\",\"$issues->{title}\",\"$message_id\"\n"; + if ( $use_tt ) { + $letter->{content} =~ s/__MESSAGE_ID__/$message_id/g; + print $OUT $letter->{content}; + } else { + print $OUT "\"$format\",\"$language\",\"$type\",\"$issues->{level}\",\"$issues->{cardnumber}\",\"$issues->{patron_title}\",\"$issues->{firstname}\","; + print $OUT "\"$issues->{surname}\",\"$issues->{phone}\",\"$issues->{email}\",\"$library_code\","; + print $OUT "\"$issues->{site}\",\"$issues->{site_name}\",\"$issues->{barcode}\",\"$due_date\",\"$issues->{title}\",\"$message_id\"\n"; + } } } @@ -214,7 +232,7 @@ sub GetOverdueIssues { my $query = "SELECT borrowers.borrowernumber, borrowers.cardnumber, borrowers.title as patron_title, borrowers.firstname, borrowers.surname, borrowers.phone, borrowers.email, borrowers.branchcode, biblio.biblionumber, biblio.title, items.barcode, issues.date_due, max(overduerules.branchcode) as rulebranch, TO_DAYS(NOW())-TO_DAYS(date_due) as daysoverdue, delay1, delay2, delay3, - issues.branchcode as site, branches.branchname as site_name + issues.branchcode as site, branches.branchname as site_name, items.itemnumber FROM borrowers JOIN issues USING (borrowernumber) JOIN items USING (itemnumber) JOIN biblio USING (biblionumber) @@ -248,7 +266,7 @@ sub GetOverdueIssues { sub GetPredueIssues { my $query = "SELECT borrowers.borrowernumber, borrowers.cardnumber, borrowers.title as patron_title, borrowers.firstname, borrowers.surname, borrowers.phone, borrowers.email, borrowers.branchcode, biblio.biblionumber, biblio.title, items.barcode, issues.date_due, - issues.branchcode as site, branches.branchname as site_name + issues.branchcode as site, branches.branchname as site_name, items.itemnumber FROM borrowers JOIN issues USING (borrowernumber) JOIN items USING (itemnumber) JOIN biblio USING (biblionumber) @@ -273,7 +291,7 @@ sub GetPredueIssues { sub GetWaitingHolds { my $query = "SELECT borrowers.borrowernumber, borrowers.cardnumber, borrowers.title as patron_title, borrowers.firstname, borrowers.surname, borrowers.phone, borrowers.email, borrowers.branchcode, biblio.biblionumber, biblio.title, items.barcode, reserves.waitingdate, - reserves.branchcode AS site, branches.branchname AS site_name, + reserves.branchcode AS site, branches.branchname AS site_name, items.itemnumber, TO_DAYS(NOW())-TO_DAYS(reserves.waitingdate) AS days_since_waiting FROM borrowers JOIN reserves USING (borrowernumber) JOIN items USING (itemnumber) --