Aktualisierung
[kivitendo-erp.git] / SL / AP.pm
index f6478d3..106212c 100644 (file)
--- 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,20 +562,19 @@ 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, project_id) | .
         qq|VALUES (?, (SELECT c.id FROM chart c WHERE c.accno = ?), ?, ?, ?)|;
-      @values = ($form->{id}, $form->{AP}, $amount,
+      @values = ($form->{id}, $accno_ap, $amount,
                  conv_date($form->{"datepaid_$i"}),
                  conv_i($form->{"paid_project_id_$i"}));
       do_query($form, $dbh, $query, @values);