[freeside-commits] branch master updated. e95a28ea14289ffcfa652bff9b179d3820b56242
Ivan Kohler
ivan at freeside.biz
Wed May 16 22:21:02 PDT 2018
The branch, master has been updated
via e95a28ea14289ffcfa652bff9b179d3820b56242 (commit)
via a8d1e0ab1d47170d29f847bcbb790a58c6eb435d (commit)
via 483e8f097bff5067a62873e750070993b68163b0 (commit)
from 827c717245d3374f4dacba7308002ecf64a88304 (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 e95a28ea14289ffcfa652bff9b179d3820b56242
Author: Ivan Kohler <ivan at freeside.biz>
Date: Wed May 16 22:21:01 2018 -0700
include batch payment and statement events in reports, RT#80156
diff --git a/FS/FS/cust_event.pm b/FS/FS/cust_event.pm
index 094c4fa8b..2884f1278 100644
--- a/FS/FS/cust_event.pm
+++ b/FS/FS/cust_event.pm
@@ -315,11 +315,16 @@ sub join_sql {
"
JOIN part_event USING ( eventpart )
+
LEFT JOIN cust_bill ON ( eventtable = 'cust_bill' AND tablenum = invnum )
LEFT JOIN cust_pkg ON ( eventtable = 'cust_pkg' AND tablenum = pkgnum )
LEFT JOIN cust_pay ON ( eventtable = 'cust_pay' AND tablenum = paynum )
+ LEFT JOIN cust_pay_batch ON ( eventtable = 'cust_pay_batch' AND tablenum = paybatchnum )
+ LEFT JOIN cust_statement ON ( eventtable = 'cust_statement' AND tablenum = cust_statement.statementnum )
+
LEFT JOIN cust_svc ON ( eventtable = 'svc_acct' AND tablenum = svcnum )
LEFT JOIN cust_pkg AS cust_pkg_for_svc ON ( cust_svc.pkgnum = cust_pkg_for_svc.pkgnum )
+
LEFT JOIN cust_main ON (
( eventtable = 'cust_main' AND tablenum = cust_main.custnum )
OR ( eventtable = 'cust_bill' AND cust_bill.custnum = cust_main.custnum )
diff --git a/httemplate/search/cust_event.html b/httemplate/search/cust_event.html
index b1ba9090e..1766c1905 100644
--- a/httemplate/search/cust_event.html
+++ b/httemplate/search/cust_event.html
@@ -134,6 +134,12 @@ my $trigger_link = sub {
my $pkgnum = $cust_event->tablenum;
my $frag = "cust_pkg$pkgnum"; #hack for IE ignoring real #fragment
[ "${p}view/cust_main.cgi?custnum=$custnum$show;fragment=$frag#cust_pkg", 'tablenum' ];
+ } elsif ( $eventtable eq 'cust_pay' ) {
+ [ "${p}view/$eventtable.html?paynum=", 'tablenum' ];
+ } elsif ( $eventtable eq 'cust_statement' ) {
+ [ "${p}view/$eventtable.html?", 'tablenum' ];
+ } elsif ( $eventtable eq 'cust_pay_batch' ) {
+ [ "${p}search/cust_pay_batch.cgi?batchnum=", 'cust_pay_batch_batchnum' ];
} else {
[ "${p}view/$eventtable.cgi?", 'tablenum' ];
}
@@ -199,6 +205,7 @@ my $sql_query = {
'part_event.*',
#'cust_bill.custnum',
#'cust_bill._date AS cust_bill_date',
+ 'cust_pay_batch.batchnum AS cust_pay_batch_batchnum',
'cust_main.custnum AS cust_main_custnum',
FS::UI::Web::cust_sql_fields(),
),
diff --git a/httemplate/search/report_cust_event.html b/httemplate/search/report_cust_event.html
index 7aa4ff9d7..d020de9fc 100644
--- a/httemplate/search/report_cust_event.html
+++ b/httemplate/search/report_cust_event.html
@@ -44,7 +44,7 @@
'field' => 'event_status',
'multiple' => 1,
'all_selected' => 1,
- 'size' => 5,
+ 'size' => 6,
'options' => [ qw( done_Y done_S done_N failed new locked ) ],
'option_labels' => { done_Y => 'Completed normally',
done_S => 'Completed, with an error',
commit a8d1e0ab1d47170d29f847bcbb790a58c6eb435d
Merge: 483e8f097 827c71724
Author: Ivan Kohler <ivan at freeside.biz>
Date: Wed May 16 18:00:33 2018 -0700
Merge branch 'master' of git.freeside.biz:/home/git/freeside
commit 483e8f097bff5067a62873e750070993b68163b0
Author: Ivan Kohler <ivan at freeside.biz>
Date: Tue May 15 14:53:25 2018 -0700
more efficient invoice voiding, RT#80366
diff --git a/FS/FS/cust_bill_pkg.pm b/FS/FS/cust_bill_pkg.pm
index a36520b77..f6b40f6b2 100644
--- a/FS/FS/cust_bill_pkg.pm
+++ b/FS/FS/cust_bill_pkg.pm
@@ -365,8 +365,10 @@ sub void {
return $error;
}
+ #more efficiently than below, because there could be lots
+ $self->void_cust_bill_pkg_detail($reprocess_cdrs);
+
foreach my $table (qw(
- cust_bill_pkg_detail
cust_bill_pkg_display
cust_bill_pkg_discount
cust_bill_pkg_tax_location
@@ -374,17 +376,13 @@ sub void {
cust_tax_exempt_pkg
cust_bill_pkg_fee
)) {
- my %delete_args = ();
- $delete_args{'reprocess_cdrs'} = $reprocess_cdrs
- if $table eq 'cust_bill_pkg_detail';
-
foreach my $linked ( qsearch($table, { billpkgnum=>$self->billpkgnum }) ) {
my $vclass = 'FS::'.$table.'_void';
my $void = $vclass->new( {
map { $_ => $linked->get($_) } $linked->fields
});
- my $error = $void->insert || $linked->delete(%delete_args);
+ my $error = $void->insert || $linked->delete;
if ( $error ) {
$dbh->rollback if $oldAutoCommit;
return $error;
@@ -406,6 +404,40 @@ sub void {
}
+sub void_cust_bill_pkg_detail {
+ my( $self, $reprocess_cdrs ) = @_;
+
+ my $from_cust_bill_pkg_detail =
+ 'FROM cust_bill_pkg_detail WHERE billpkgnum = ?';
+ my $where_detailnum =
+ "WHERE detailnum IN ( SELECT detailnum $from_cust_bill_pkg_detail )";
+
+ if ( $reprocess_cdrs ) {
+ #well, technically this could have been on other invoices / termination
+ # partners... separate flag?
+ $self->scalar_sql(
+ "DELETE FROM cdr_termination
+ WHERE acctid IN ( SELECT acctid FROM cdr $where_detailnum )
+ ",
+ $self->billpkgnum
+ );
+ }
+
+ my $setstatus = $reprocess_cdrs ? ', freesidestatus = NULL' : '';
+ $self->scalar_sql(
+ "UPDATE cdr SET detailnum = NULL $setstatus $where_detailnum",
+ $self->billpkgnum
+ );
+
+ $self->scalar_sql("INSERT INTO cust_bill_pkg_detail_void
+ SELECT * $from_cust_bill_pkg_detail",
+ $self->billpkgnum
+ );
+
+ $self->scalar_sql("DELETE $from_cust_bill_pkg_detail", $self->billpkgnum);
+
+}
+
=item delete
Not recommended.
@@ -716,6 +748,7 @@ Returns the customer (L<FS::cust_main> object) for this line item.
=cut
sub cust_main {
+ carp "->cust_main called" if $DEBUG;
# required for cust_main_Mixin equivalence
# and use cust_bill instead of cust_pkg because this might not have a
# cust_pkg
-----------------------------------------------------------------------
Summary of changes:
FS/FS/cust_bill_pkg.pm | 45 +++++++++++++++++++++++++++-----
FS/FS/cust_event.pm | 5 ++++
httemplate/search/cust_event.html | 7 +++++
httemplate/search/report_cust_event.html | 2 +-
4 files changed, 52 insertions(+), 7 deletions(-)
More information about the freeside-commits
mailing list