X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2Ft%2Fsuite%2F09-sales_tax_credit_change.t;h=80a05c61009b39102de4196a8b9eb9c999a4a044;hp=58d9968d83a487f74cc8105a1040a9e68c654de5;hb=490763ae78915268ff8f892a6cb70fed54fec27a;hpb=d03ff57c2254deb9607c802db7454aa894e080fc diff --git a/FS/t/suite/09-sales_tax_credit_change.t b/FS/t/suite/09-sales_tax_credit_change.t index 58d9968d8..80a05c610 100755 --- a/FS/t/suite/09-sales_tax_credit_change.t +++ b/FS/t/suite/09-sales_tax_credit_change.t @@ -13,7 +13,7 @@ Correct: The credit amount will be $11.00. =cut use strict; -use Test::More tests => 2; +use Test::More tests => 3; use FS::Test; use Date::Parse 'str2time'; use Date::Format 'time2str'; @@ -78,18 +78,19 @@ ok ( $tax_item && $tax_item->setup == 3.00, "Tax charged = 3.00" ); # sync $pkg = $pkg->replace_old; -# Pay the bill +# Pay the bill in two parts set_fixed_time(str2time('2016-04-02 00:00')); -my $cust_pay = FS::cust_pay->new({ - custnum => $cust->custnum, - invnum => $cust_bill->invnum, - _date => time, - paid => $cust_bill->owed, - payby => 'CASH', -}); -$error = $cust_pay->insert; -BAIL_OUT("can't record payment: $error") if $error; - +foreach my $paid (10.00, 23.00) { + my $cust_pay = FS::cust_pay->new({ + custnum => $cust->custnum, + invnum => $cust_bill->invnum, + _date => time, + paid => $paid, + payby => 'CASH', + }); + $error = $cust_pay->insert; + BAIL_OUT("can't record payment: $error") if $error; +} # Now cancel with 1/3 of the period left set_fixed_time(str2time('2016-04-21 00:00')); $error = $pkg->cancel(); @@ -100,3 +101,8 @@ my ($credit) = $cust->cust_credit or BAIL_OUT("no credit was created"); ok ( $credit->amount == 11.00, "Credited 1/3 of package charge with tax" ) or diag("is ". $credit->amount ); + +# the invoice should also be fully paid after that +ok ( $cust_bill->owed == 0, "Invoice balance is zero" ) + or diag("is ". $cust_bill->owed); +