X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/72539cb39a3d19f930a8e0e41e46bf41afe9a8f1..e64cfdbc81d114e6ceefe2fcf23a2baf3833965c:/SL/AR.pm diff --git a/SL/AR.pm b/SL/AR.pm index 42f8c1cc7..5c588f37d 100644 --- a/SL/AR.pm +++ b/SL/AR.pm @@ -91,35 +91,43 @@ sub post_transaction { $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.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|; - $query = - qq| SELECT c.accno, t.rate FROM chart c, tax t where c.id=t.chart_id AND t.taxkey=$form->{"taxkey_$i"}|; $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); - ($form->{AR_amounts}{"tax_$i"}, $form->{"taxrate_$i"}) = + ($form->{AR_amounts}{"tax_$i"}, $form->{"taxkey_$i"}, $form->{"taxrate_$i"}) = $sth->fetchrow_array; $form->{AR_amounts}{"tax_$i"}{taxkey} = $form->{"taxkey_$i"}; $form->{AR_amounts}{"amount_$i"}{taxkey} = $form->{"taxkey_$i"}; $sth->finish; - if (!$form->{"korrektur_$i"}) { - if ($form->{taxincluded} *= 1) { - $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"}; + if ($form->{taxincluded} *= 1) { + if (!$form->{"korrektur_$i"}) { + $tax = + $form->{"amount_$i"} - + ($form->{"amount_$i"} / ($form->{"taxrate_$i"} + 1)); } 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"}; } + $form->{"tax_$i"} = + $form->round_amount($form->{"tax_$i"} * $form->{exchangerate}, 2); + $form->{netamount} += $form->{"amount_$i"}; } + $form->{total_tax} += $form->{"tax_$i"}; } @@ -403,7 +411,7 @@ sub ar_transactions { my $query = qq|SELECT a.id, a.invnumber, a.ordnumber, a.transdate, a.duedate, a.netamount, a.amount, a.paid, c.name, a.invoice, a.datepaid, a.terms, a.notes, a.shipvia, - a.shippingpoint, + a.shippingpoint, a.storno, e.name AS employee FROM ar a JOIN customer c ON (a.customer_id = c.id) @@ -467,5 +475,25 @@ sub ar_transactions { $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;