X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fcust_bill_pkg.pm;h=6f9c74a641bc6b80aced8fe54237b655bd3f2384;hp=1262c3874ff37bd9f67b4c3683711d6ec3ded843;hb=754f419aa67a58a58fa890e14b1239f3e42d23c6;hpb=9996cfd8b87a47576dbac33a04007ec42d024d23 diff --git a/FS/FS/cust_bill_pkg.pm b/FS/FS/cust_bill_pkg.pm index 1262c3874..6f9c74a64 100644 --- a/FS/FS/cust_bill_pkg.pm +++ b/FS/FS/cust_bill_pkg.pm @@ -6,7 +6,7 @@ use vars qw( @ISA $DEBUG $me ); use Carp; use List::Util qw( sum min ); use Text::CSV_XS; -use FS::Record qw( qsearch qsearchs dbh ); +use FS::Record qw( qsearch qsearchs dbh fields ); use FS::cust_pkg; use FS::cust_bill_pkg_detail; use FS::cust_bill_pkg_display; @@ -429,8 +429,10 @@ sub void_cust_bill_pkg_detail { $self->billpkgnum ); - $self->scalar_sql("INSERT INTO cust_bill_pkg_detail_void - SELECT * $from_cust_bill_pkg_detail", + my $fields = join(', ', fields('cust_bill_pkg_detail_void') ); + + $self->scalar_sql("INSERT INTO cust_bill_pkg_detail_void ($fields) + SELECT $fields $from_cust_bill_pkg_detail", $self->billpkgnum ); @@ -491,7 +493,16 @@ sub delete { } } - my $error = $self->SUPER::delete(@_); + #fix the invoice amount + + my $cust_bill = $self->cust_bill; + $cust_bill->charged( $cust_bill->charged - $self->setup - $self->recur ); + + #not adding a cc surcharge, but this override lets us modify charged + $cust_bill->{'Hash'}{'cc_surcharge_replace_hack'} = 1; + + my $error = $cust_bill->replace + || $self->SUPER::delete(@_); if ( $error ) { $dbh->rollback if $oldAutoCommit; return $error;