X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_credit.pm;h=156ba5fd6fd7c09abff1b2af318062c6f752093a;hb=faa92dd0fd0b875886378de7c91c59a4049f1168;hp=567be21d6e5e5f680c0f905768b38823dfb5cd6a;hpb=9ac90646828dd34b49fc2474c9666ba33c3508a4;p=freeside.git diff --git a/FS/FS/cust_credit.pm b/FS/FS/cust_credit.pm index 567be21d6..156ba5fd6 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 ]'; @@ -689,7 +690,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; @@ -815,14 +815,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 } ### @@ -918,12 +914,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', };