$form->{exchangerate} * -1,
2);
$amount += ($form->{"amount_$i"} * -1);
+
+ # parse tax_$i for later
+ $form->{"tax_$i"} = $form->parse_amount($myconfig, $form->{"tax_$i"}) * -1;
}
# this is for ap
$form->{taxincluded} = 0 if ($form->{amount} == 0);
for $i (1 .. $form->{rowcount}) {
- ($form->{"taxkey_$i"}, $NULL) = split /--/, $form->{"taxchart_$i"};
+ ($form->{"tax_id_$i"}, $NULL) = split /--/, $form->{"taxchart_$i"};
- $query =
- qq| SELECT c.accno, t.rate FROM chart c, tax t where c.id=t.chart_id AND t.taxkey=$form->{"taxkey_$i"}|;
+ $query = qq|SELECT c.accno, t.taxkey, t.rate
+ FROM tax t LEFT JOIN chart c on (c.id=t.chart_id)
+ WHERE t.id=$form->{"tax_id_$i"}
+ ORDER BY c.accno|;
$sth = $dbh->prepare($query);
$sth->execute || $form->dberror($query);
- ($form->{AP_amounts}{"tax_$i"}, $form->{"taxrate_$i"}) =
+ ($form->{AP_amounts}{"tax_$i"}, $form->{"taxkey_$i"}, $form->{"taxrate_$i"}) =
$sth->fetchrow_array;
$form->{AP_amounts}{"tax_$i"}{taxkey} = $form->{"taxkey_$i"};
$form->{AP_amounts}{"amount_$i"}{taxkey} = $form->{"taxkey_$i"};
$sth->finish;
- if (!$form->{"korrektur_$i"}) {
- if ($form->{taxincluded} *= 1) {
+ if ($form->{taxincluded} *= 1) {
+ if (!$form->{"korrektur_$i"}) {
$tax =
$form->{"amount_$i"} -
($form->{"amount_$i"} / ($form->{"taxrate_$i"} + 1));
- $amount = $form->{"amount_$i"} - $tax;
- $form->{"amount_$i"} = $form->round_amount($amount, 2);
- $diff += $amount - $form->{"amount_$i"};
- $form->{"tax_$i"} = $form->round_amount($tax, 2);
- $form->{netamount} += $form->{"amount_$i"};
} else {
+ $tax = $form->{"tax_$i"};
+ }
+ $amount = $form->{"amount_$i"} - $tax;
+ $form->{"amount_$i"} = $form->round_amount($amount, 2);
+ $diff += $amount - $form->{"amount_$i"};
+ $form->{"tax_$i"} = $form->round_amount($tax, 2);
+ $form->{netamount} += $form->{"amount_$i"};
+ } else {
+ if (!$form->{"korrektur_$i"}) {
$form->{"tax_$i"} = $form->{"amount_$i"} * $form->{"taxrate_$i"};
- $form->{"tax_$i"} =
- $form->round_amount($form->{"tax_$i"} * $form->{exchangerate}, 2);
- $form->{netamount} += $form->{"amount_$i"};
+ } else {
+ $tax = $form->{"tax_$i"};
}
+ $form->{"tax_$i"} =
+ $form->round_amount($form->{"tax_$i"} * $form->{exchangerate}, 2);
+ $form->{netamount} += $form->{"amount_$i"};
}
$form->{total_tax} += $form->{"tax_$i"} * -1;
}
# amount for total AP
$form->{payables} = $form->{invtotal};
- print(STDERR $form->{payables},
- " Payables\n",
- $form->{invtotal},
- " Invtotal\n",
- $form->{netamount},
- " Netamount\n",
- $form->{total_tax},
- " Total_Tax\n\n");
+
my ($query, $sth);
# if we have an id delete old records
push @a, "employee" if $self->{l_employee};
my $sortorder = join ', ', $form->sort_columns(@a);
$sortorder = $form->{sort} if $form->{sort};
-
+
$query .= "WHERE $where
ORDER by $sortorder";
$main::lxdebug->leave_sub();
}
+sub get_transdate {
+ $main::lxdebug->enter_sub();
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query =
+ "SELECT COALESCE(" .
+ " (SELECT transdate FROM gl WHERE id = " .
+ " (SELECT MAX(id) FROM gl) LIMIT 1), " .
+ " current_date)";
+ ($form->{transdate}) = $dbh->selectrow_array($query);
+
+ $dbh->disconnect;
+
+ $main::lxdebug->leave_sub();
+}
+
1;