Programmierrichtlinien etwas aktualisiert.
[kivitendo-erp.git] / SL / CT.pm
index f2745fb..a8ea84e 100644 (file)
--- a/SL/CT.pm
+++ b/SL/CT.pm
@@ -123,7 +123,14 @@ sub get_tuple {
   }
 
   # check if it is orphaned
-  my $arap = ( $form->{db} eq 'customer' ) ? "ar" : "ap";
+  my $arap      = ( $form->{db} eq 'customer' ) ? "ar" : "ap";
+  my $num_args  = 2;
+  my $makemodel = '';
+  if ($form->{db} eq 'vendor') {
+    $makemodel = qq| UNION SELECT 1 FROM makemodel mm WHERE mm.make = ?|;
+    $num_args++;
+  }
+
   $query =
     qq|SELECT a.id | .
     qq|FROM $arap a | .
@@ -133,8 +140,10 @@ sub get_tuple {
     qq|SELECT a.id | .
     qq|FROM oe a | .
     qq|JOIN $cv ct ON (a.${cv}_id = ct.id) | .
-    qq|WHERE ct.id = ?|;
-  my ($dummy) = selectrow_query($form, $dbh, $query, $form->{id}, $form->{id});
+    qq|WHERE ct.id = ?|
+    . $makemodel;
+  my ($dummy) = selectrow_query($form, $dbh, $query, (conv_i($form->{id})) x $num_args);
+
   $form->{status} = "orphaned" unless ($dummy);
 
   $dbh->disconnect;
@@ -695,7 +704,7 @@ sub search {
   $form->{sort} = $sortorder;
   my $sortdir   = !defined $form->{sortdir} ? 'ASC' : $form->{sortdir} ? 'ASC' : 'DESC';
 
-if ($sortorder ne 'id') {
+  if ($sortorder ne 'id' && 1 >= scalar grep { $form->{$_} } qw(l_ordnumber l_quonumber l_invnumber)) {
     $sortorder  = "lower($sortorder) ${sortdir}";
   } else {
     $sortorder .= " ${sortdir}";
@@ -909,6 +918,7 @@ sub get_delivery {
 
   my $arap = $form->{db} eq "vendor" ? "ap" : "ar";
   my $db = $form->{db} eq "customer" ? "customer" : "vendor";
+  my $qty_sign = $form->{db} eq 'vendor' ? ' * -1 AS qty' : '';
 
   my $where = " WHERE 1=1 ";
   my @values;
@@ -930,7 +940,7 @@ sub get_delivery {
     push(@values, conv_date($form->{to}));
   }
   my $query =
-    qq|SELECT s.shiptoname, i.qty, | .
+    qq|SELECT s.shiptoname, i.qty $qty_sign, | .
     qq|  ${arap}.id, ${arap}.transdate, ${arap}.invnumber, ${arap}.ordnumber, | .
     qq|  i.description, i.unit, i.sellprice, | .
     qq|  oe.id AS oe_id | .