Artikelpreishistorie automatisch über Trigger speichern
[kivitendo-erp.git] / SL / IS.pm
index 566d154..6affa1d 100644 (file)
--- a/SL/IS.pm
+++ b/SL/IS.pm
@@ -969,15 +969,20 @@ SQL
   }
 
   # Invoice Summary includes Rounding
+  my $grossamount = $netamount + $tax;
   my $rounding = $form->round_amount(
-    $form->round_amount($netamount + $tax, 2, 1) - $form->round_amount($netamount + $tax, 2), 2
+    $form->round_amount($grossamount, 2, 1) - $form->round_amount($grossamount, 2),
+    2
   );
   my $rnd_accno = $rounding == 0 ? 0
                 : $rounding > 0  ? $form->{rndgain_accno}
-                :                  $form->{rndloss_accno};
-  $form->{amount}{ $form->{id} }{ $form->{AR} } = $form->round_amount($netamount + $tax, 2, 1);
-  $form->{paid} =
-    $form->round_amount($form->{paid} * $form->{exchangerate} + $diff, 2);
+                :                  $form->{rndloss_accno}
+  ;
+  $form->{amount}{ $form->{id} }{ $form->{AR} } = $form->round_amount($grossamount, 2, 1);
+  $form->{paid} = $form->round_amount(
+    $form->{paid} * $form->{exchangerate} + $diff,
+    2
+  );
 
   # reverse AR
   $form->{amount}{ $form->{id} }{ $form->{AR} } *= -1;
@@ -2227,7 +2232,7 @@ sub retrieve_item {
     my ($table, $field) = split m/\./, $column;
     next if !$form->{"${field}_${i}"};
     $where .= qq| AND lower(${column}) ILIKE ?|;
-    push @values, '%' . $form->{"${field}_${i}"} . '%';
+    push @values, like($form->{"${field}_${i}"});
   }
 
   my (%mm_by_id);
@@ -2239,7 +2244,7 @@ sub retrieve_item {
     my $mm_query = qq|
       SELECT parts_id, model FROM makemodel LEFT JOIN parts ON parts.id = parts_id WHERE NOT parts.obsolete AND model ILIKE ?;
     |;
-    my $mm_results = selectall_hashref_query($::form, $dbh, $mm_query, '%' . $form->{"partnumber_$i"} . '%');
+    my $mm_results = selectall_hashref_query($::form, $dbh, $mm_query, like($form->{"partnumber_$i"}));
     my @mm_ids     = map { $_->{parts_id} } @$mm_results;
     push @{$mm_by_id{ $_->{parts_id} } ||= []}, $_ for @$mm_results;