summaryrefslogtreecommitdiff
path: root/bin/mozilla/ir.pl
diff options
context:
space:
mode:
authortetragon <tetragon@4979c152-3d1c-0410-bac9-87ea11338e46>2006-10-08 20:47:38 +0000
committertetragon <tetragon@4979c152-3d1c-0410-bac9-87ea11338e46>2006-10-08 20:47:38 +0000
commit68399771603d9a2d084a9eaca480f17016801fe6 (patch)
tree02859ae3e2743f8b141a9837f703c21d77651759 /bin/mozilla/ir.pl
parent7376ef357ac4dce6bf30548c773774dddd2ea033 (diff)
First round of tax code replacement, adds cumulative tax support
git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@195 4979c152-3d1c-0410-bac9-87ea11338e46
Diffstat (limited to 'bin/mozilla/ir.pl')
-rwxr-xr-xbin/mozilla/ir.pl20
1 files changed, 14 insertions, 6 deletions
diff --git a/bin/mozilla/ir.pl b/bin/mozilla/ir.pl
index 35f9975b..be87e9eb 100755
--- a/bin/mozilla/ir.pl
+++ b/bin/mozilla/ir.pl
@@ -41,6 +41,7 @@
use LedgerSMB::IR;
use LedgerSMB::PE;
+use LedgerSMB::Tax;
require "$form->{path}/io.pl";
require "$form->{path}/arap.pl";
@@ -422,11 +423,14 @@ sub form_footer {
}
if (!$form->{taxincluded}) {
-
- foreach $item (split / /, $form->{taxaccounts}) {
+ my @taxset = Tax::init_taxes($form, $form->{taxaccounts});
+ $form->{invtotal} += $form->round_amount(
+ Tax::calculate_taxes(\@taxset, $form, $form->{invsubtotal}, 0), 2);
+ foreach $taxobj (@taxset) {
+ $item = $taxobj->account;
if ($form->{"${item}_base"}) {
- $form->{invtotal} += $form->{"${item}_total"} = $form->round_amount($form->{"${item}_base"} * $form->{"${item}_rate"}, 2);
- $form->{"${item}_total"} = $form->format_amount(\%myconfig, $form->{"${item}_total"}, 2);
+ $form->{"${item}_total"} = $form->format_amount(\%myconfig,
+ $form->round_amount($taxobj->value, 2), 2);
$tax .= qq|
<tr>
@@ -673,7 +677,10 @@ sub import_text {
$amount = $form->{"sellprice_$i"} * $form->{"qty_$i"} * (1 - $form->{"discount_$i"} / 100);
map { $form->{"${_}_base"} = 0 } (split / /, $form->{taxaccounts});
map { $form->{"${_}_base"} += $amount } (split / /, $form->{"taxaccounts_$i"});
- map { $amount += ($form->{"${_}_base"} * $form->{"${_}_rate"}) } split / /, $form->{"taxaccounts_$i"} if !$form->{taxincluded};
+ if (!$form->{taxincluded}) {
+ my @taxes = Tax::init_taxes($form, $form->{taxaccounts});
+ $amount += (Tax::calculate_taxes(\@taxes, $form, $amount, 0));
+ }
$form->{creditremaining} -= $amount;
@@ -794,7 +801,8 @@ sub update {
for (split / /, $form->{taxaccounts}) { $form->{"${_}_base"} = 0 }
for (split / /, $form->{"taxaccounts_$i"}) { $form->{"${_}_base"} += $amount }
if (!$form->{taxincluded}) {
- for (split / /, $form->{"taxaccounts_$i"}) { $amount += ($form->{"${_}_base"} * $form->{"${_}_rate"}) }
+ my @taxes = Tax::init_taxes($form, $form->{"taxaccounts_$i"});
+ $amount += (Tax::calculate_taxes(\@taxes, $form, $amount, 0));
}
$form->{creditremaining} -= $amount;