From: Bill Erickson Date: Wed, 5 Dec 2012 21:18:05 +0000 (-0500) Subject: notify csv X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=6f214605a5ca7850ebb7743eca9d695794eb614b;p=evergreen%2Fequinox.git notify csv Signed-off-by: Bill Erickson --- diff --git a/Open-ILS/src/support-scripts/csv_notify_pusher.pl b/Open-ILS/src/support-scripts/csv_notify_pusher.pl old mode 100644 new mode 100755 index b923a7fff8..8f147464ea --- a/Open-ILS/src/support-scripts/csv_notify_pusher.pl +++ b/Open-ILS/src/support-scripts/csv_notify_pusher.pl @@ -1,5 +1,90 @@ +#!/usr/bin/perl +use strict; +use warnings; +use DateTime; +use OpenSRF::AppSession; +use OpenILS::Utils::CStoreEditor; +use OpenILS::Utils::Cronscript; +binmode(STDOUT, ":utf8"); +my %defaults = ( + 'osrf-config=s' => '/openils/conf/opensrf_core.xml', + 'start-date=s' => DateTime->now->strftime('%F'), + 'end-date=s' => '', + 'event-defs=s' => '', + 'verbose' => 0 +); -my $header = <new(\%defaults); +my $opts = $o->MyGetOptions(); + +# TODO: skip cronscript's help +help() if $opts->{help}; + +my $verbose = $opts->{'verbose'}; +my $start_date = $opts->{'start-date'} || ''; +my $end_date = $opts->{'end-date'} || ''; + +my @event_defs = split(/,/, $opts->{'event-defs'}); + +if ($verbose) { + print "processing event_defs = @event_defs\n"; + print "start_date = $start_date\n"; + print "end_date = $end_date\n"; +} + +my %date_filter; +$date_filter{run_time} = {'>=' => $start_date} if $start_date; +$date_filter{run_time} = {'<' => $end_date} if $end_date; + +$o->bootstrap; + +my $ses = OpenSRF::AppSession->create('open-ils.cstore'); +my $req = $ses->request( + 'open-ils.cstore.json_query', { + select => {ateo => ['data']}, + from => { + ateo => { + atev => { + filter => { + state => 'complete', + %date_filter + }, + join => { + atevdef => { + filter => {id => \@event_defs} + } + } + } + } + } + } +); + +# header +print '"Media Type","Language","Notice Type","Notification Level",'; +print '"Patron Number","Patron Title","Patron First Names","Patron Surname",'; +print '"Telephone Number","Email Address","Library Code","Site Code",'; +print '"Site Name","Item Barcode","Due Date","Item Title","Transaction ID"'; +print "\n"; + +# dump the CSV chunk from each event output +while (my $resp = $req->recv(timeout => 12000)) { + my $content = $resp->content or next; + print $content->{data}; +} diff --git a/notify-csv.tt2 b/notify-csv.tt2 index c19e8f9a76..d40af781df 100644 --- a/notify-csv.tt2 +++ b/notify-csv.tt2 @@ -75,4 +75,4 @@ [%- '"' _ helpers.escape_csv(due_date) _ '",' -%] [%- '"' _ helpers.escape_csv(title) _ '",' -%] [%- '"' _ helpers.escape_csv(event.id) _ '"' %] -[% END %] +[% END -%]