]> wagnertech.de Git - mfinanz.git/blobdiff - SL/AP.pm
preferences to client-features managed
[mfinanz.git] / SL / AP.pm
index 9e108a1caaa2312fd656cc413f66b5b689a90d65..594728546e82d3976b99ea5e44aa4847bb1302a6 100644 (file)
--- a/SL/AP.pm
+++ b/SL/AP.pm
@@ -482,7 +482,7 @@ sub ap_transactions {
   }
   if ($form->{project_id}) {
     $where .=
-      qq|AND ((a.globalproject_id = ?) OR EXISTS | .
+      qq| AND ((a.globalproject_id = ?) OR EXISTS | .
       qq|  (SELECT * FROM invoice i | .
       qq|   WHERE i.project_id = ? AND i.trans_id = a.id) | .
       qq| OR EXISTS | .
@@ -507,6 +507,33 @@ sub ap_transactions {
     }
   }
 
+  if ($form->{parts_partnumber}) {
+    $where .= <<SQL;
+ AND EXISTS (
+        SELECT invoice.trans_id
+        FROM invoice
+        LEFT JOIN parts ON (invoice.parts_id = parts.id)
+        WHERE (invoice.trans_id = a.id)
+          AND (parts.partnumber ILIKE ?)
+        LIMIT 1
+      )
+SQL
+    push @values, like($form->{parts_partnumber});
+  }
+
+  if ($form->{parts_description}) {
+    $where .= <<SQL;
+ AND EXISTS (
+        SELECT invoice.trans_id
+        FROM invoice
+        WHERE (invoice.trans_id = a.id)
+          AND (invoice.description ILIKE ?)
+        LIMIT 1
+      )
+SQL
+    push @values, like($form->{parts_description});
+  }
+
   if ($where) {
     substr($where, 0, 4, " WHERE ");
     $query .= $where;