X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FCA.pm;h=1a77102391f3db0662d554fd464c4bf2db4e9633;hb=1a344dd59350e494024e81054bc6c752b08c668c;hp=4453a9fd6b9568ff5acec224eb6b3116f8c4bd8d;hpb=081a4f9736f3bc345872be8f61632cbed4a8d9b3;p=kivitendo-erp.git diff --git a/SL/CA.pm b/SL/CA.pm index 4453a9fd6..1a7710239 100644 --- a/SL/CA.pm +++ b/SL/CA.pm @@ -42,7 +42,7 @@ sub all_accounts { my ($self, $myconfig, $form) = @_; - my $amount = (); + my %amount; # connect to database my $dbh = $form->dbconnect($myconfig); @@ -65,16 +65,83 @@ sub all_accounts { $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); - my $gifi = (); + my %gifi; while (my ($accno, $description) = $sth->fetchrow_array) { $gifi{$accno} = $description; } $sth->finish; - $query = qq|SELECT c.id, c.accno, c.description, c.charttype, c.gifi_accno, - c.category, c.link - FROM chart c - ORDER BY accno|; + $query = qq| + + SELECT c.id, + c.accno, + c.description, + c.charttype, + c.gifi_accno, + c.category, + c.link, + c.pos_ustva, + c.pos_bwa, + c.pos_bilanz, + c.pos_eur, + c.valid_from, + c.datevautomatik, +-- ( SELECT comma(taxkey_id) +-- FROM taxkeys tk +-- WHERE tk.chart_id = c.id +-- AND c.taxkey_id = tk.taxkey_id +-- ORDER BY c.id +-- ) AS taxkey_id, + + ( SELECT comma(taxkey) + FROM tax tx + WHERE tx.id in ( + SELECT tk.tax_id from taxkeys tk + WHERE tk.chart_id = c.id + ) + ORDER BY c.accno + ) AS taxkey, + + ( SELECT comma(taxdescription) + FROM tax tx + WHERE tx.id in ( + SELECT tk.tax_id from taxkeys tk + WHERE tk.chart_id = c.id + ) + ORDER BY c.accno + ) AS taxdescription, + + ( SELECT comma(taxnumber) + FROM tax tx + WHERE tx.id in ( + SELECT tk.tax_id from taxkeys tk + WHERE tk.chart_id = c.id + ) + ORDER BY c.accno + ) AS taxaccount, + + ( SELECT comma(tk.pos_ustva) + FROM taxkeys tk + WHERE tk.chart_id = c.id + AND c.taxkey_id = tk.taxkey_id + ORDER BY c.id + ) AS tk_ustva, + + ( SELECT comma(startdate) + FROM taxkeys tk + WHERE tk.chart_id = c.id + AND c.taxkey_id = tk.taxkey_id + ORDER BY c.id + ) AS startdate, + + ( SELECT accno + FROM chart c2 + WHERE c2.id = c.id + ) AS new_account + FROM chart c + ORDER BY accno + |; + $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); @@ -141,31 +208,14 @@ sub all_transactions { if ($form->{todate}) { $fromto .= " AND ac.transdate <= '$form->{todate}'"; $subwhere .= " AND transdate <= '$form->{todate}'"; + $glwhere .= " AND ac.transdate <= '$form->{todate}'"; } - if ($form->{eur}) { - $AR_PAID = qq|AND ac.trans_id IN - ( - SELECT trans_id - FROM acc_trans - JOIN chart ON (chart_id = id) - WHERE link LIKE '%AR_paid%' - $subwhere - )|; - $AP_PAID = qq|AND ac.trans_id IN - ( - SELECT trans_id - FROM acc_trans - JOIN chart ON (chart_id = id) - WHERE link LIKE '%AP_paid%' - $subwhere - )|; - } else { - $where .= $fromto; - $AR_PAID = ""; - $AP_PAID = ""; - $glwhere = ""; # note! gl will be aliased as "a" later... - } + + $where .= $fromto; + $AR_PAID = ""; + $AP_PAID = ""; + $glwhere = ""; # note! gl will be aliased as "a" later... my $sortorder = join ', ', $form->sort_columns(qw(transdate reference description)); my $false = ($myconfig->{dbdriver} eq 'Pg') ? FALSE: q|'0'|;