X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FIR.pm;h=5ea2404ede3956cd4e40cc9024aeb36c5b7b9995;hb=5dd59becc5c8a9adb9457754c0ebe564aa94e029;hp=3bad7ce05849613628a721f2d79dbf7d5f6e818d;hpb=dad628a3c28d66caf59d23c3c7a8949e39bff81c;p=kivitendo-erp.git diff --git a/SL/IR.pm b/SL/IR.pm index 3bad7ce05..5ea2404ed 100644 --- a/SL/IR.pm +++ b/SL/IR.pm @@ -100,6 +100,8 @@ sub post_invoice { ? $exchangerate : $form->parse_amount($myconfig, $form->{exchangerate}); + $form->{exchangerate} = 1 unless ($form->{exchangerate} * 1); + for my $i (1 .. $form->{rowcount}) { $form->{"qty_$i"} = $form->parse_amount($myconfig, $form->{"qty_$i"}); @@ -274,9 +276,9 @@ sub post_invoice { # add entry for inventory, this one is for the sold item if ($linetotal != 0) { $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, - transdate) + transdate, taxkey) VALUES ($ref->{trans_id}, $ref->{inventory_accno_id}, - $linetotal, '$ref->{transdate}')|; + $linetotal, '$ref->{transdate}', (SELECT taxkey_id FROM chart WHERE id = $ref->{inventory_accno_id}))|; $dbh->do($query) || $form->dberror($query); # add expense @@ -520,22 +522,24 @@ sub post_invoice { if ($form->{amount}{ $form->{id} }{ $form->{AP} } != 0) { $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, - transdate, project_id) + transdate, taxkey, project_id) VALUES ($form->{id}, (SELECT c.id FROM chart c - WHERE c.accno = '$form->{AP}'), - $amount, '$form->{"datepaid_$i"}', ?)|; - do_query($form, $dbh, $query, $project_id); + WHERE c.accno = ?), + $amount, '$form->{"datepaid_$i"}', + (SELECT taxkey_id FROM chart WHERE accno = ?), ?)|; + do_query($form, $dbh, $query, $form->{AP}, $form->{AP}, $project_id); } # record payment $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, - source, memo, project_id) + source, memo, taxkey, project_id) VALUES ($form->{id}, (SELECT c.id FROM chart c - WHERE c.accno = '$accno'), + WHERE c.accno = ?), $form->{"paid_$i"}, '$form->{"datepaid_$i"}', - '$form->{"source_$i"}', '$form->{"memo_$i"}', ?)|; - do_query($form, $dbh, $query, $project_id); + '$form->{"source_$i"}', '$form->{"memo_$i"}', + (SELECT taxkey_id FROM chart WHERE accno = ?), ?)|; + do_query($form, $dbh, $query, $accno, $accno, $project_id); $exchangerate = 0; @@ -589,10 +593,10 @@ sub post_invoice { ) { $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, - transdate, cleared, fx_transaction, project_id) + transdate, cleared, fx_transaction, taxkey, project_id) VALUES ($form->{id}, (SELECT c.id FROM chart c WHERE c.accno = '$accno'), - $form->{fx}{$accno}{$transdate}, '$transdate', '0', '1', ?)|; + $form->{fx}{$accno}{$transdate}, '$transdate', '0', '1', 0, ?)|; do_query($form, $dbh, $query, $project_id); } } @@ -994,10 +998,11 @@ sub get_vendor { my $query = qq|SELECT v.name AS vendor, v.creditlimit, v.terms, v.email, v.cc, v.bcc, v.language_id, v.payment_id, v.street, v.zipcode, v.city, v.country, v.taxzone_id, - $duedate + v.terms AS duedate, + $duedate + COALESCE(pt.terms_netto, 0) AS duedate, b.description AS business FROM vendor v LEFT JOIN business b ON b.id = v.business_id + LEFT JOIN payment_terms pt ON v.payment_id = pt.id WHERE v.id = $form->{vendor_id}|; my $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); @@ -1081,11 +1086,23 @@ sub get_vendor { while ($ref = $sth->fetchrow_hashref(NAME_lc)) { if ($ref->{category} eq 'E') { $i++; - $form->{"AP_amount_$i"} = "$ref->{accno}--$ref->{description}"; + + if ($form->{initial_transdate}) { + my $tax_query = + qq|SELECT tk.tax_id, t.rate FROM taxkeys tk | . + qq|LEFT JOIN tax t ON tk.tax_id = t.id | . + qq|WHERE tk.chart_id = ? AND startdate <= ? | . + qq|ORDER BY tk.startdate DESC LIMIT 1|; + my ($tax_id, $rate) = + selectrow_query($form, $dbh, $tax_query, $ref->{id}, + $form->{initial_transdate}); + $form->{"taxchart_$i"} = "${tax_id}--${rate}"; + } + + $form->{"AP_amount_$i"} = "$ref->{accno}--$tax_id"; } if ($ref->{category} eq 'L') { - $form->{APselected} = $form->{AP_1} = - "$ref->{accno}--$ref->{description}"; + $form->{APselected} = $form->{AP_1} = $ref->{accno}; } } $sth->finish; @@ -1340,11 +1357,12 @@ sub post_payment { $dbh->do($query) || $form->dberror($query); $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, - transdate, project_id) + transdate, taxkey, project_id) VALUES ($form->{id}, (SELECT c.id FROM chart c - WHERE c.accno = '$form->{AP}'), - $amount, '$form->{"datepaid_$i"}', ?)|; - do_query($form, $dbh, $query, $project_id); + WHERE c.accno = ?), + $amount, '$form->{"datepaid_$i"}', + (SELECT taxkey_id FROM chart WHERE accno = ?), ?)|; + do_query($form, $dbh, $query, $form->{AP}, $form->{AP}, $project_id); @@ -1353,12 +1371,13 @@ sub post_payment { $dbh->do($query) || $form->dberror($query); $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, - source, memo, project_id) + source, memo, taxkey, project_id) VALUES ($form->{id}, (SELECT c.id FROM chart c - WHERE c.accno = '$accno'), + WHERE c.accno = ?), $form->{"paid_$i"}, '$form->{"datepaid_$i"}', - '$form->{"source_$i"}', '$form->{"memo_$i"}', ?)|; - do_query($form, $dbh, $query, $project_id); + '$form->{"source_$i"}', '$form->{"memo_$i"}', + (SELECT taxkey_id FROM chart WHERE accno = ?), ?)|; + do_query($form, $dbh, $query, $accno, $accno, $project_id); # gain/loss @@ -1396,12 +1415,13 @@ sub post_payment { WHERE c.accno = '$accno') AND amount=$form->{fx}{$accno}{$transdate} AND transdate='$transdate' AND cleared='0' AND fx_transaction='1'|; $dbh->do($query) || $form->dberror($query); $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, - transdate, cleared, fx_transaction, project_id) + transdate, cleared, fx_transaction, taxkey, project_id) VALUES ($form->{id}, (SELECT c.id FROM chart c - WHERE c.accno = '$accno'), - $form->{fx}{$accno}{$transdate}, '$transdate', '0', '1', ?)|; - do_query($form, $dbh, $query, $project_id); + WHERE c.accno = ?), + $form->{fx}{$accno}{$transdate}, '$transdate', '0', '1', + (SELECT taxkey_id FROM chart WHERE accno = ?), ?)|; + do_query($form, $dbh, $query, $accno, $accno, $project_id); } } }