Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 744cfc20

Von Philip Reetz vor fast 18 Jahren hinzugefügt

  • ID 744cfc2096349710e763d5103eef3250c52a32db
  • Vorgänger 1182c721
  • Nachfolger ab198db3

Anpassung Dialogbuchen an neues Steuersystem

Unterschiede anzeigen:

SL/GL.pm
145 145

  
146 146
  # insert acc_trans transactions
147 147
  for $i (1 .. $form->{rowcount}) {
148

  
148
    my $taxkey;
149
    my $rate;
149 150
    # extract accno
151
    print(STDERR $form->{"taxchart_$i"}, "TAXCHART\n");
150 152
    my ($accno) = split(/--/, $form->{"accno_$i"});
151 153
    my ($taxkey, $rate) = split(/--/, $form->{"taxchart_$i"});
154
    ($form->{"tax_id_$i"}, $NULL) = split /--/, $form->{"taxchart_$i"};
155
    if ($form->{"tax_id_$i"} ne "") {
156
      $query = qq|SELECT t.taxkey, t.rate
157
              FROM tax t
158
              WHERE t.id=$form->{"tax_id_$i"}|;
159
  
160
      $sth = $dbh->prepare($query);
161
      $sth->execute || $form->dberror($query);
162
      ($taxkey, $rate) =
163
        $sth->fetchrow_array;
164
      $sth->finish;
165
    }
166

  
152 167
    my $amount = 0;
153 168
    my $debit  = $form->{"debit_$i"};
154 169
    my $credit = $form->{"credit_$i"};
......
194 209
                  VALUES
195 210
                  ($form->{id}, (SELECT t.chart_id
196 211
                  FROM tax t
197
                  WHERE t.taxkey = $taxkey),
212
                  WHERE t.id = $form->{"tax_id_$i"}),
198 213
                  $amount, '$form->{transdate}', |
199 214
        . $dbh->quote($form->{"source_$i"}) . qq|, |
200 215
        . $dbh->quote($form->{"memo_$i"}) . qq|,
......
608 623
	      WHERE a.chart_id = c.id
609 624
	      AND a.trans_id = $form->{id}
610 625
	      ORDER BY a.oid";
626

  
627
    $query = qq|SELECT c.accno, t.taxkey AS accnotaxkey, a.amount, a.memo,
628
                a.transdate, a.cleared, a.project_id, p.projectnumber,(SELECT p.projectnumber FROM project p
629
		 WHERE a.project_id = p.id) AS projectnumber, a.taxkey, t.rate AS taxrate, t.id, (SELECT c1.accno FROM chart c1, tax t1 WHERE t1.id=t.id AND c1.id=t.chart_id) AS taxaccno
630
		FROM acc_trans a
631
		JOIN chart c ON (c.id = a.chart_id)
632
		LEFT JOIN project p ON (p.id = a.project_id)
633
                LEFT JOIN tax t ON (t.id=(SELECT tk.tax_id from taxkeys tk WHERE (tk.taxkey_id=a.taxkey) AND ((CASE WHEN a.chart_id IN (SELECT chart_id FROM taxkeys WHERE taxkey_id=a.taxkey) THEN tk.chart_id=a.chart_id ELSE 1=1 END) OR (c.link='%tax%')) AND startdate <=a.transdate ORDER BY startdate DESC LIMIT 1)) 
634
                WHERE a.trans_id = $form->{id}
635
		AND a.fx_transaction = '0'
636
		ORDER BY a.oid,a.transdate|;
637

  
638

  
611 639
    $sth = $dbh->prepare($query);
612 640
    $sth->execute || $form->dberror($query);
613 641

  
......
645 673
  }
646 674

  
647 675
  $sth->finish;
648

  
676
  my $transdate = "current_date";
677
  if ($form->{transdate}) {
678
    $transdate = qq|'$form->{transdate}'|;
679
  }
649 680
  # get chart of accounts
650
  $query = qq|SELECT c.accno, c.description, c.taxkey_id
651
              FROM chart c
652
	      WHERE c.charttype = 'A'
653
              ORDER by c.accno|;
681
  $query = qq|SELECT c.accno, c.description, c.link, tk.taxkey_id, tk.tax_id
682
                FROM chart c 
683
                LEFT JOIN taxkeys tk ON (tk.id = (SELECT id from taxkeys where taxkeys.chart_id =c.id AND startdate<=$transdate ORDER BY startdate desc LIMIT 1))
684
                ORDER BY c.accno|;
654 685
  $sth = $dbh->prepare($query);
655 686
  $sth->execute || $form->dberror($query);
656 687
  $form->{chart} = ();

Auch abrufbar als: Unified diff