summaryrefslogtreecommitdiff
path: root/bin/io.pl
diff options
context:
space:
mode:
authoreinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2007-07-21 17:15:06 +0000
committereinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2007-07-21 17:15:06 +0000
commitcb3ed4ec17fbe42bad05f94946bc033678f09019 (patch)
tree55296194e73c67449ebc858d8a56d59d92fceeee /bin/io.pl
parent33da5bb969ad49cef8f1d638ea72b094ca79f442 (diff)
Correcting cumulative tax display issues, bug 1745757
git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@1434 4979c152-3d1c-0410-bac9-87ea11338e46
Diffstat (limited to 'bin/io.pl')
-rw-r--r--bin/io.pl34
1 files changed, 34 insertions, 0 deletions
diff --git a/bin/io.pl b/bin/io.pl
index 13b646ef..f066b6be 100644
--- a/bin/io.pl
+++ b/bin/io.pl
@@ -84,6 +84,40 @@ if ( -f "bin/custom/$form->{login}_io.pl" ) {
# $locale->text('Nov')
# $locale->text('Dec')
+sub _calc_taxes {
+ for $i (1 .. $form->{rowcount}){
+ my $linetotal =
+ $form->parse_amount(\%myconfig, $form->{"sellprice_$i"})
+ * $form->parse_amount(\%myconfig, $form->{"qty_$i"})
+ * (1 - $form->parse_amount(\%myconfig, $form->{"discount_$i"})
+ / 100);
+ @taxaccounts = Tax::init_taxes(
+ $form, $form->{"taxaccounts_$i"},
+ $form->{'taxaccounts'}
+ );
+ my $tax;
+ my $fxtax;
+ my $amount;
+ if ( $form->{taxincluded} ) {
+ $tax += $amount =
+ Tax::calculate_taxes( \@taxaccounts, $form, $linetotal, 1 );
+
+ $form->{"sellprice_$i"} -= $amount / $form->{"qty_$i"};
+ }
+ else {
+ $tax += $amount =
+ Tax::calculate_taxes( \@taxaccounts, $form, $linetotal, 0 );
+ $fxtax +=
+ Tax::calculate_taxes( \@taxaccounts, $form, $fxlinetotal, 0 )
+ if $fxlinetotal;
+ }
+ for (@taxaccounts) {
+ $form->{taxes}{$_->account} = 0 if ! $form->{taxes}{$_->account};
+ $form->{taxes}{$_->account} += $_->value;
+ }
+ }
+}
+
sub display_row {
my $numrows = shift;