[freeside-commits] branch FREESIDE_3_BRANCH updated. 286a56c9c9d4d29bae5e2734f4341d638de9c8e3
Mark Wells
mark at 420.am
Thu Jun 9 16:22:56 PDT 2016
The branch, FREESIDE_3_BRANCH has been updated
via 286a56c9c9d4d29bae5e2734f4341d638de9c8e3 (commit)
from 6129a83b54394aff0b4368a367033aa6a309cd8c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 286a56c9c9d4d29bae5e2734f4341d638de9c8e3
Author: Mark Wells <mark at freeside.biz>
Date: Thu Jun 9 15:56:36 2016 -0700
remove "failed billing events" report, and add "completed with an error" status search, #42637
Conflicts:
httemplate/elements/menu.html
diff --git a/FS/FS/cust_event.pm b/FS/FS/cust_event.pm
index 90c1b90..09d993e 100644
--- a/FS/FS/cust_event.pm
+++ b/FS/FS/cust_event.pm
@@ -253,7 +253,13 @@ sub do_event {
$statustext = "Error running ". $part_event->action. " action: $@";
} elsif ( $error ) {
$status = 'done';
- $statustext = $error;
+ if ( $error eq 'N/A' ) {
+ # archaic way to indicate no-op completion of spool_csv (and maybe
+ # other events)?
+ $self->no_action('Y');
+ } else {
+ $statustext = $error;
+ }
} else {
$status = 'done';
}
@@ -405,17 +411,22 @@ sub search_sql_where {
if ( @event_status ) {
my @status;
- my ($done_Y, $done_N);
+ my ($done_Y, $done_N, $done_S);
+ # done_Y: action was taken
+ # done_N: action was not taken
+ # done_S: status message returned
foreach (@event_status) {
if ($_ eq 'done_Y') {
$done_Y = 1;
} elsif ( $_ eq 'done_N' ) {
$done_N = 1;
+ } elsif ( $_ eq 'done_S' ) {
+ $done_S = 1;
} else {
push @status, $_;
}
}
- if ( $done_Y or $done_N ) {
+ if ( $done_Y or $done_N or $done_S ) {
push @status, 'done';
}
if ( @status ) {
@@ -424,12 +435,23 @@ sub search_sql_where {
')';
}
- if ( $done_Y and not $done_N ) {
- push @search, "cust_event.no_action IS NULL";
- } elsif ( $done_N and not $done_Y ) {
- push @search, "cust_event.no_action = 'Y'";
- } # else they're both true, so don't add a constraint, or both false,
- # and it doesn't matter.
+ # done_S status should include only those where statustext is not null,
+ # and done_Y should include only those where it is.
+ if ( $done_Y and $done_N and $done_S ) {
+ # then not necessary
+ } else {
+ my @done_status;
+ if ( $done_Y ) {
+ push @done_status, "(cust_event.no_action IS NULL AND cust_event.statustext IS NULL)";
+ }
+ if ( $done_N ) {
+ push @done_status, "(cust_event.no_action = 'Y')";
+ }
+ if ( $done_S ) {
+ push @done_status, "(cust_event.no_action IS NULL AND cust_event.statustext IS NOT NULL)";
+ }
+ push @search, join(' OR ', @done_status) if @done_status;
+ }
} # event_status
diff --git a/httemplate/elements/menu.html b/httemplate/elements/menu.html
index 84eb511..00f4f13 100644
--- a/httemplate/elements/menu.html
+++ b/httemplate/elements/menu.html
@@ -325,13 +325,6 @@ $report_employees{'Employee Audit Report'} = [ $fsurl.'search/report_employee_au
if $curuser->access_right('Employees: Audit Report');
;
-tie my %report_bill_event, 'Tie::IxHash',
- 'All billing events' => [ $fsurl.'search/report_cust_event.html', 'All billing events for a date range' ],
- 'Billing event errors' => [ $fsurl.'search/report_cust_event.html?failed=1', 'Failed credit cards, processor or printer problems, etc.' ],
-# 'All invoice events' => [ $fsurl.'search/cust_bill_event.html', 'Reports on deprecated, old-style invoice events for a date range' ],
-# 'Invoice event errors' => [ $fsurl.'search/cust_bill_event.html?failed=1', 'Reports on deprecated, old-style events for failed credit cards, processor or printer problems, etc.' ],
-;
-
tie my %report_payments, 'Tie::IxHash',
'Payments' => [ $fsurl.'search/report_cust_pay.html', 'Payment report (by type and/or date range)' ],
'Payment application detail' => [ $fsurl.'search/report_cust_bill_pay_pkg.html', 'Line item application detail' ],
@@ -444,7 +437,7 @@ $report_menu{'Tickets'} = [ \%report_ticketing, 'Ticket reports' ]
;#&& FS::TicketSystem->access_right(\%session, 'Something');
$report_menu{'Employees'} = [ \%report_employees, 'Employee reports' ]
if keys %report_employees;
-$report_menu{'Billing events'} = [ \%report_bill_event, 'Billing events' ]
+$report_menu{'Billing events'} = [ $fsurl.'search/report_cust_event.html', 'Search billing events by date and status' ]
if $curuser->access_right('Billing event reports');
$report_menu{'Financial'} = [ \%report_financial, 'Financial reports' ]
if $curuser->access_right('Financial reports')
diff --git a/httemplate/search/report_cust_event.html b/httemplate/search/report_cust_event.html
index 465a391..5b8489b 100644
--- a/httemplate/search/report_cust_event.html
+++ b/httemplate/search/report_cust_event.html
@@ -44,16 +44,18 @@
% } else {
% # 'initial' is not on here, since nobody needs to see it. also,
-% # 'done_Y' and 'done_N' are shorthand for "done, and no_action
-% # is null" and "done, and no_action = 'Y'".
+% # 'done_Y' = "done, and no_action is null, and statustext is null"
+% # 'done_S' = "done, and no_action is null, and statustext is not null"
+% # 'done_N' = "done, and no_action = 'Y'".
<& /elements/tr-select.html,
'label' => 'Event status',
'field' => 'event_status',
'multiple' => 1,
'all_selected' => 1,
'size' => 5,
- 'options' => [ qw( done_Y done_N failed new locked ) ],
- 'option_labels' => { done_Y => 'Completed',
+ 'options' => [ qw( done_Y done_S done_N failed new locked ) ],
+ 'option_labels' => { done_Y => 'Completed normally',
+ done_S => 'Completed, with an error',
done_N => 'Completed, no action taken',
failed => 'Failed',
new => 'Not yet processed',
-----------------------------------------------------------------------
Summary of changes:
FS/FS/cust_event.pm | 40 +++++++++++++++++++++++-------
httemplate/elements/menu.html | 9 +------
httemplate/search/report_cust_event.html | 10 +++++---
3 files changed, 38 insertions(+), 21 deletions(-)
More information about the freeside-commits
mailing list