X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FAP.pm;h=106212c772364e41f746472b5dea1fb1d4ff0cfa;hb=15f549fdb43fba2d99817c659533dfa02638bf27;hp=3522e62619d26233d3881eaf13377f9bcd67e468;hpb=f01741e36a022e2bb7503abb23fbc0f46f27cd62;p=kivitendo-erp.git diff --git a/SL/AP.pm b/SL/AP.pm index 3522e6261..106212c77 100644 --- a/SL/AP.pm +++ b/SL/AP.pm @@ -268,6 +268,7 @@ sub post_transaction { # add paid transactions for my $i (1 .. $form->{paidaccounts}) { if ($form->{"paid_$i"} != 0) { + my $project_id = conv_i($form->{"paid_project_id_$i"}); $exchangerate = 0; if ($form->{currency} eq $form->{defaultcurrency}) { @@ -300,21 +301,21 @@ sub post_transaction { 2); if ($form->{payables}) { $query = - qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate) | . - qq|VALUES (?, (SELECT c.id FROM chart c WHERE c.accno = ?), ?, ?)|; + qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, project_id) | . + qq|VALUES (?, (SELECT c.id FROM chart c WHERE c.accno = ?), ?, ?, ?)|; @values = ($form->{id}, $form->{AP}{payables}, $amount, - conv_date($form->{"datepaid_$i"})); + conv_date($form->{"datepaid_$i"}), $project_id); do_query($form, $dbh, $query, @values); } $form->{payables} = $amount; # add payment $query = - qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, source, memo) | . - qq|VALUES (?, (SELECT c.id FROM chart c WHERE c.accno = ?), ?, ?, ?, ?)|; + qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, source, memo, project_id) | . + qq|VALUES (?, (SELECT c.id FROM chart c WHERE c.accno = ?), ?, ?, ?, ?, ?)|; @values = ($form->{id}, $form->{AP}{"paid_$i"}, $form->{"paid_$i"}, conv_date($form->{"datepaid_$i"}), $form->{"source_$i"}, - $form->{"memo_$i"}); + $form->{"memo_$i"}, $project_id); do_query($form, $dbh, $query, @values); # add exchange rate difference @@ -323,10 +324,10 @@ sub post_transaction { ($form->{"exchangerate_$i"} - 1), 2); if ($amount != 0) { $query = - qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, fx_transaction, cleared) | . - qq|VALUES (?, (SELECT c.id FROM chart c WHERE c.accno = ?), ?, ?, 't', 'f')|; + qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, fx_transaction, cleared, project_id) | . + qq|VALUES (?, (SELECT c.id FROM chart c WHERE c.accno = ?), ?, ?, 't', 'f', ?)|; @values = ($form->{id}, $form->{AP}{"paid_$i"}, $amount, - conv_date($form->{"datepaid_$i"})); + conv_date($form->{"datepaid_$i"}), $project_id); do_query($form, $dbh, $query, @values); } @@ -338,11 +339,11 @@ sub post_transaction { if ($amount != 0) { $query = - qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, fx_transaction, cleared) | . - qq|VALUES (?, (SELECT c.id FROM chart c WHERE c.accno = ?), ?, ?, 't', 'f')|; + qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, fx_transaction, cleared, project_id) | . + qq|VALUES (?, (SELECT c.id FROM chart c WHERE c.accno = ?), ?, ?, 't', 'f', ?)|; @values = ($form->{id}, ($amount > 0) ? $form->{fxgain_accno} : $form->{fxloss_accno}, - $amount, conv_date($form->{"datepaid_$i"})); + $amount, conv_date($form->{"datepaid_$i"}), $project_id); do_query($form, $dbh, $query, @values); } @@ -516,7 +517,7 @@ sub post_payment { # connect to database, turn off autocommit my $dbh = $form->dbconnect_noauto($myconfig); - $form->{datepaid} = $form->{invdate}; + $form->{datepaid} = $form->{transdate}; # total payments, don't move we need it here for my $i (1 .. $form->{paidaccounts}) { @@ -526,17 +527,19 @@ sub post_payment { } $form->{exchangerate} = - $form->get_exchangerate($dbh, $form->{currency}, $form->{invdate}, + $form->get_exchangerate($dbh, $form->{currency}, $form->{transdate}, "buy"); my (@values, $query); + my ($accno_ap) = split(/--/, $form->{APselected}); + # record payments and offsetting AP for my $i (1 .. $form->{paidaccounts}) { if ($form->{"paid_$i"} != 0) { my ($accno) = split /--/, $form->{"AP_paid_$i"}; - $form->{"datepaid_$i"} = $form->{invdate} + $form->{"datepaid_$i"} = $form->{transdate} unless ($form->{"datepaid_$i"}); $form->{datepaid} = $form->{"datepaid_$i"}; @@ -559,21 +562,21 @@ sub post_payment { $form->round_amount($form->{"paid_$i"} * $form->{"exchangerate"}, 2) * -1; - $query = qq|DELETE FROM acc_trans | . qq|WHERE trans_id = ? | . qq| AND chart_id = (SELECT c.id FROM chart c WHERE c.accno = ?) | . qq| AND amount = ? AND transdate = ?|; - @values = ($form->{id}, $form->{AP}, $amount, + @values = ($form->{id}, $accno_ap, $amount, conv_date($form->{"datepaid_$i"})); do_query($form, $dbh, $query, @values); $query = - qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate) | . - qq|VALUES (?, (SELECT c.id FROM chart c WHERE c.accno = ?), ?, ?)|; - @values = ($form->{id}, $form->{AP}, $amount, - conv_date($form->{"datepaid_$i"})); + qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, project_id) | . + qq|VALUES (?, (SELECT c.id FROM chart c WHERE c.accno = ?), ?, ?, ?)|; + @values = ($form->{id}, $accno_ap, $amount, + conv_date($form->{"datepaid_$i"}), + conv_i($form->{"paid_project_id_$i"})); do_query($form, $dbh, $query, @values); $query = @@ -587,11 +590,12 @@ sub post_payment { do_query($form, $dbh, $query, @values); $query = - qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, source, memo) | . - qq|VALUES (?, (SELECT c.id FROM chart c WHERE c.accno = ?), ?, ?, ?, ?)|; + qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, source, memo, project_id) | . + qq|VALUES (?, (SELECT c.id FROM chart c WHERE c.accno = ?), ?, ?, ?, ?, ?)|; @values = ($form->{id}, $accno, $form->{"paid_$i"}, $form->{"datepaid_$i"}, - $form->{"source_$i"}, $form->{"memo_$i"}); + $form->{"source_$i"}, $form->{"memo_$i"}, + conv_i($form->{"paid_project_id_$i"})); do_query($form, $dbh, $query, @values); # gain/loss