From df674bc7d1e892a4464d79aa08b57162e278f53e Mon Sep 17 00:00:00 2001 From: Mitch Jackson Date: Tue, 8 Jan 2019 00:01:21 -0500 Subject: [PATCH] RT# 81701 Add system log lines for EFT Canada upload/download --- FS/bin/freeside-eftca-download | 5 ++++- FS/bin/freeside-eftca-upload | 35 +++++++++++++++++++++++++++-------- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/FS/bin/freeside-eftca-download b/FS/bin/freeside-eftca-download index caf9e0e70..56d82c7f5 100755 --- a/FS/bin/freeside-eftca-download +++ b/FS/bin/freeside-eftca-download @@ -57,7 +57,10 @@ my $conf = new FS::Conf; my @agents; if ( $conf->exists('batch-spoolagent') ) { - @agents = qsearch('agent', { 'disabled' => '' }); + local $@; + eval { @agents = qsearch('agent', { 'disabled' => '' }); }; + log_error_and_die("Fatal database error: $@") + if $@; } else { @agents = (1); } diff --git a/FS/bin/freeside-eftca-upload b/FS/bin/freeside-eftca-upload index 9818cbdb5..503c7a35a 100755 --- a/FS/bin/freeside-eftca-upload +++ b/FS/bin/freeside-eftca-upload @@ -31,13 +31,25 @@ log_info( "EFT Canada upload started\n" ); my @batches; if($opt_a) { - @batches = qsearch('pay_batch', { 'status' => 'O', 'payby' => 'CHEK' }) - or log_info_and_die( "Finished: No open batches found.\n" ); + local $@; + eval { + @batches = qsearch('pay_batch', { 'status' => 'O', 'payby' => 'CHEK' }) + }; + log_error_and_die ("Fatal database error: $@") + if $@; + + log_info_and_die( "Finished: No open batches found.\n" ) + unless @batches; } else { my $batchnum = shift; die &HELP_MESSAGE if !$batchnum; - @batches = qsearchs('pay_batch', { batchnum => $batchnum } ); + + local $@; + eval { @batches = qsearchs('pay_batch', { batchnum => $batchnum } ); }; + log_error_and_die("Fatal database error: $@") + if $@; + log_error_and_die( "Can't find payment batch '$batchnum'\n" ) if !@batches; } @@ -84,11 +96,18 @@ foreach my $pay_batch (@batches) { # Auto-approve and close the batch. Some false laziness with manual_approve. my $batchnum = $pay_batch->batchnum; my $error; - foreach my $cpb ( qsearch('cust_pay_batch', { 'batchnum' => $batchnum } ) ) { - $cpb->setfield('paid', $cpb->amount); - $error = $cpb->approve($batchnum); - last if $error; - } + + local $@; + eval { + foreach my $cpb ( qsearch('cust_pay_batch', { 'batchnum' => $batchnum } )) { + $cpb->setfield('paid', $cpb->amount); + $error = $cpb->approve($batchnum); + last if $error; + } + }; + log_error_and_die("Fatal database error: $@") + if $@; + $error ||= $pay_batch->set_status('R'); log_error_and_die( "error closing batch $batchnum: $error\n\n" ) if $error; -- 2.11.0