my $sortorder = join ', ', $form->sort_columns(qw(transdate invnumber name));
$sortorder = $form->{sort} if ($form->{sort} && grep({ $_ eq $form->{sort} } qw(id transdate invnumber name netamount tax)));
- my $query = '';
- if ($form->{report} !~ /nontaxable/) {
- $query =
+ my $query =
qq|SELECT a.id, '0' AS invoice, $transdate AS transdate, a.invnumber, n.name, a.netamount,
ac.amount * $ml AS tax
FROM acc_trans ac
JOIN $table n ON (n.id = a.${table}_id)
JOIN ${table}tax t ON (t.${table}_id = n.id)
JOIN invoice i ON (i.trans_id = a.id)
- JOIN partstax p ON (p.parts_id = i.parts_id)
WHERE
$where
$accno
AND (a.invoice = '1')
ORDER BY $sortorder|;
- } else {
- # only gather up non-taxable transactions
- $query =
- qq|SELECT a.id, '0' AS invoice, $transdate AS transdate, a.invnumber, n.name, a.netamount
- FROM acc_trans ac
- JOIN ${arap} a ON (a.id = ac.trans_id)
- JOIN $table n ON (n.id = a.${table}_id)
- WHERE
- $where
- AND (a.invoice = '0')
- AND (a.netamount = a.amount)
-
- UNION
-
- SELECT a.id, '1' AS invoice, $transdate AS transdate, a.invnumber, n.name, i.sellprice * i.qty AS netamount
- FROM acc_trans ac
- JOIN ${arap} a ON (a.id = ac.trans_id)
- JOIN $table n ON (n.id = a.${table}_id)
- JOIN invoice i ON (i.trans_id = a.id)
- WHERE
- $where
- AND (a.invoice = '1')
- AND (
- a.${table}_id NOT IN (SELECT ${table}_id FROM ${table}tax t (${table}_id))
- OR
- i.parts_id NOT IN (SELECT parts_id FROM partstax p (parts_id))
- )
- GROUP BY a.id, a.invnumber, $transdate, n.name, i.sellprice, i.qty
- ORDER by $sortorder|;
- }
$form->{TR} = selectall_hashref_query($form, $dbh, $query);
$main::lxdebug->leave_sub();
}
-sub ustva {
- $main::lxdebug->enter_sub();
-
- my ($self, $myconfig, $form) = @_;
-
- # connect to database
- my $dbh = $form->dbconnect($myconfig);
-
- my $last_period = 0;
- my @categories_cent = qw(51r 511 86r 861 97r 971 93r 931
- 96 66 43 45 53 62 65 67);
- my @categories_euro = qw(48 51 86 91 97 93 94);
- $form->{decimalplaces} *= 1;
-
- foreach my $item (@categories_cent) {
- $form->{"$item"} = 0;
- }
- foreach my $item (@categories_euro) {
- $form->{"$item"} = 0;
- }
-
- &get_accounts_g($dbh, $last_period, $form->{fromdate}, $form->{todate}, $form, "pos_ustva");
-
- # foreach $item (@categories_cent) {
- # if ($form->{$item}{"jetzt"} > 0) {
- # $form->{$item} = $form->{$item}{"jetzt"};
- # delete $form->{$item}{"jetzt"};
- # }
- # }
- # foreach $item (@categories_euro) {
- # if ($form->{$item}{"jetzt"} > 0) {
- # $form->{$item} = $form->{$item}{"jetzt"};
- # delete $form->{$item}{"jetzt"};
- # } foreach $item (@categories_cent) {
- # if ($form->{$item}{"jetzt"} > 0) {
- # $form->{$item} = $form->{$item}{"jetzt"};
- # delete $form->{$item}{"jetzt"};
- # }
- # }
- # foreach $item (@categories_euro) {
- # if ($form->{$item}{"jetzt"} > 0) {
- # $form->{$item} = $form->{$item}{"jetzt"};
- # delete $form->{$item}{"jetzt"};
- # }
- # }
- #
- # }
-
- #
- # Berechnung der USTVA Formularfelder
- #
- $form->{"51r"} = $form->{"511"};
- $form->{"86r"} = $form->{"861"};
- $form->{"97r"} = $form->{"971"};
- $form->{"93r"} = $form->{"931"};
-
- #$form->{"96"} = $form->{"94"} * 0.16;
- $form->{"43"} =
- $form->{"51r"} + $form->{"86r"} + $form->{"97r"} + $form->{"93r"} +
- $form->{"96"};
- $form->{"45"} = $form->{"43"};
- $form->{"53"} = $form->{"43"};
- $form->{"62"} = $form->{"43"} - $form->{"66"};
- $form->{"65"} = $form->{"43"} - $form->{"66"};
- $form->{"67"} = $form->{"43"} - $form->{"66"};
-
- foreach my $item (@categories_cent) {
- $form->{$item} =
- $form->format_amount($myconfig, $form->round_amount($form->{$item}, 2),
- 2, '0');
- }
-
- foreach my $item (@categories_euro) {
- $form->{$item} =
- $form->format_amount($myconfig, $form->round_amount($form->{$item}, 0),
- 0, '0');
- }
-
- $dbh->disconnect;
-
- $main::lxdebug->leave_sub();
-}
-
sub income_statement {
$main::lxdebug->enter_sub();