Einkaufspreis bei Einkaufsauftrag aus Verkaufsauftrag 2
[kivitendo-erp.git] / SL / CP.pm
index cb97f96..b7e6241 100644 (file)
--- a/SL/CP.pm
+++ b/SL/CP.pm
@@ -37,6 +37,8 @@
 package CP;
 use SL::DBUtils;
 
+use strict;
+
 sub new {
   $main::lxdebug->enter_sub();
 
@@ -162,9 +164,9 @@ sub get_openinvoices {
 
   my $query =
      qq|SELECT a.id, a.invnumber, a.transdate, a.amount, a.paid, a.curr | .
-          qq|FROM $arap a | .
+     qq|FROM $arap a | .
      qq|WHERE (a.${vc}_id = ?) AND (a.curr = ? $curr_null) AND NOT (a.amount = paid)| .
-                qq|ORDER BY a.id|;
+     qq|ORDER BY a.id|;
   my $sth = prepare_execute_query($form, $dbh, $query,
                                   conv_i($form->{"${vc}_id"}),
                                   $form->{currency});
@@ -302,7 +304,7 @@ sub process_payment {
           qq|INSERT INTO acc_trans (trans_id, chart_id, transdate, amount, | .
           qq|                       cleared, fx_transaction) | .
           qq|VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?, ?, ?)|;
-                   @values = (conv_i($form->{"id_$i"}), $paymentaccno,
+        @values = (conv_i($form->{"id_$i"}), $paymentaccno,
                    conv_date($form->{datepaid}), ($amount * $ml * -1), '0',
                    '1');
         do_query($form, $dbh, $query, @values);
@@ -343,7 +345,7 @@ sub process_payment {
 
       # update AR/AP transaction
       $query = qq|UPDATE $arap SET $paid, datepaid = ? WHERE id = ?|;
-                 @values = (conv_date($form->{datepaid}), conv_i($form->{"id_$i"}));
+      @values = (conv_date($form->{datepaid}), conv_i($form->{"id_$i"}));
       do_query($form, $dbh, $query, @values);
       # saving the history
       $form->{id} = $form->{"id_$i"};
@@ -356,15 +358,12 @@ sub process_payment {
     }
   }
 
-  # record a AR/AP with a payment
-  if ($form->round_amount($paymentamount, 2) > 0) {
-    $form->{invnumber} = "";
-    OP::overpayment("", $myconfig, $form, $dbh, $paymentamount, $ml, 1);
-  }
-
   my $rc;
   if ($form->round_amount($paymentamount, 2) < 0) {
-    $dbh->rollback;
+               # Hier werden negativen Zahlungseingänge abgefangen
+               # Besser: in Oberfläche schon prüfen
+               # Zahlungsein- und ausgänge sind immer positiv
+    $dbh->rollback;    
     $rc = 0;
   }
   if ($form->round_amount($paymentamount, 2) == 0) {