diff options
| -rw-r--r-- | FS/FS/part_pkg.pm | 19 | 
1 files changed, 10 insertions, 9 deletions
| diff --git a/FS/FS/part_pkg.pm b/FS/FS/part_pkg.pm index 82d6ed5f7..0aadd5a78 100644 --- a/FS/FS/part_pkg.pm +++ b/FS/FS/part_pkg.pm @@ -1378,15 +1378,16 @@ sub _pkgs_sql {    "      ( -      agentnum IS NOT NULL -      OR -      0 < ( SELECT COUNT(*) -              FROM type_pkgs -                LEFT JOIN agent_type USING ( typenum ) -                LEFT JOIN agent AS typeagent USING ( typenum ) -              WHERE type_pkgs.pkgpart = part_pkg.pkgpart -                AND typeagent.agentnum IN ($agentnums) -          ) +      ( agentnum IS NOT NULL AND agentnum IN ($agentnums) ) +      OR ( agentnum IS NULL +           AND EXISTS ( SELECT 1 +                          FROM type_pkgs +                            LEFT JOIN agent_type USING ( typenum ) +                            LEFT JOIN agent AS typeagent USING ( typenum ) +                          WHERE type_pkgs.pkgpart = part_pkg.pkgpart +                            AND typeagent.agentnum IN ($agentnums) +                      ) +         )      )    "; | 
