X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_credit.pm;h=e67da6bef8c371fc2220203594c620071c564e0d;hb=75e708be04ef8c4afb4a51b70f18b0f7a2ad41bc;hp=8e2aaec6f99ee32bfe28afa6d3e97f15554c0e8d;hpb=963df8e7ebf8577198bf4fac956bbcebe97ec33f;p=freeside.git diff --git a/FS/FS/cust_credit.pm b/FS/FS/cust_credit.pm index 8e2aaec6f..e67da6bef 100644 --- a/FS/FS/cust_credit.pm +++ b/FS/FS/cust_credit.pm @@ -22,6 +22,7 @@ use FS::cust_event; use FS::agent; use FS::sales; use FS::cust_credit_void; +use FS::cust_bill_pkg; use FS::upgrade_journal; $me = '[ FS::cust_credit ]'; @@ -793,7 +794,6 @@ Example: =cut #maybe i should just be an insert with extra args instead of a class method -use FS::cust_bill_pkg; sub credit_lineitems { my( $class, %arg ) = @_; my $curuser = $FS::CurrentUser::CurrentUser; @@ -919,14 +919,10 @@ sub credit_lineitems { # recalculate taxes with new amounts $taxlisthash{$invnum} ||= {}; - my $part_pkg = $cust_bill_pkg->part_pkg; - $cust_main->_handle_taxes( $part_pkg, - $taxlisthash{$invnum}, - $cust_bill_pkg, - $cust_bill_pkg->cust_pkg, - $cust_bill_pkg->cust_bill->_date, #invoice time - $cust_bill_pkg->cust_pkg->pkgpart, - ); + if ( $cust_bill_pkg->pkgnum or $cust_bill_pkg->feepart ) { + $cust_main->_handle_taxes( $taxlisthash{$invnum}, $cust_bill_pkg ); + } # otherwise the item itself is a tax, and assume the caller knows + # what they're doing } ### @@ -1022,12 +1018,12 @@ sub credit_lineitems { # we still have to deal with the possibility that the tax links don't # cover the whole amount of tax because of an incomplete upgrade... - if ($amount > 0) { + if ($amount > 0.005) { $cust_credit_bill{$invnum} += $amount; push @{ $cust_credit_bill_pkg{$invnum} }, new FS::cust_credit_bill_pkg { 'billpkgnum' => $tax_item->billpkgnum, - 'amount' => $amount, + 'amount' => sprintf('%.2f', $amount), 'setuprecur' => 'setup', }; @@ -1127,7 +1123,7 @@ sub process_batch_import { my $job = shift; my $opt = { 'table' => 'cust_credit', - 'params' => [ 'credbatch' ], + 'params' => [ '_date', 'credbatch' ], 'formats' => { 'simple' => [ 'custnum', 'amount', 'reasonnum', 'invnum' ], },