]> wagnertech.de Git - kivitendo-erp.git/blobdiff - SL/AP.pm
Einkaufs- und Verkaufsrechnungen: Filtermöglichkeiten nach Projektnummer sowie Anzeig...
[kivitendo-erp.git] / SL / AP.pm
index 4c705410a77e3977a709a201cd179e93d7e9d463..f20d61a41a5c10e38ea26a94a2a56e0ef33018c6 100644 (file)
--- a/SL/AP.pm
+++ b/SL/AP.pm
@@ -404,10 +404,13 @@ sub ap_transactions {
   my $query =
     qq|SELECT a.id, a.invnumber, a.transdate, a.duedate, a.amount, a.paid, | .
     qq|  a.ordnumber, v.name, a.invoice, a.netamount, a.datepaid, a.notes, | .
+    qq|  a.globalproject_id, | .
+    qq|  pr.projectnumber AS globalprojectnumber, | .
     qq|  e.name AS employee | .
     qq|FROM ap a | .
     qq|JOIN vendor v ON (a.vendor_id = v.id) | .
-    qq|LEFT JOIN employee e ON (a.employee_id = e.id)|;
+    qq|LEFT JOIN employee e ON (a.employee_id = e.id) | .
+    qq|LEFT JOIN project pr ON (a.globalproject_id = pr.id) |;
 
   my $where;
   my @values;
@@ -436,6 +439,13 @@ sub ap_transactions {
     $where .= " AND lower(a.notes) LIKE ?";
     push(@values, $form->like($form->{notes}));
   }
+  if ($form->{project_id}) {
+    $where .=
+      qq|AND ((a.globalproject_id = ?) OR EXISTS | .
+      qq|  (SELECT * FROM invoice i | .
+      qq|   WHERE i.project_id = ? AND i.trans_id = a.id))|;
+    push(@values, $form->{project_id}, $form->{project_id});
+  }
 
   if ($form->{transdatefrom}) {
     $where .= " AND a.transdate >= ?";