summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2019-02-28 03:44:21 -0800
committerIvan Kohler <ivan@freeside.biz>2019-02-28 03:44:21 -0800
commit8b2094d8837af641d3d28b7a76fa460c7d85456e (patch)
treecd4579d7999198770a6cf019639b88c1b9b5ce8a
parentd285949574cc657ff52a49c028478361442b9e22 (diff)
fix -C, RT#82943
-rwxr-xr-xbin/part_pkg-bulk_change13
1 files changed, 11 insertions, 2 deletions
diff --git a/bin/part_pkg-bulk_change b/bin/part_pkg-bulk_change
index 176965b..5347da6 100755
--- a/bin/part_pkg-bulk_change
+++ b/bin/part_pkg-bulk_change
@@ -16,9 +16,18 @@ adminsuidsetup $user;
my %search = ();
$search{'plan'} = $opt_p if $opt_p;
$search{'comment'} = $opt_m if $opt_m;
-$search{'classnum'} = { op=>'NOT IN', value=>"($opt_C)" } if $opt_C;
-foreach my $part_pkg ( qsearch('part_pkg',\%search) ) {
+my $extra_sql = '';
+$extra_sql = ( keys(%search) ? 'AND' : 'WHERE' ).
+ " classnum NOT IN ($opt_C)"
+ if $opt_C;
+
+foreach my $part_pkg ( qsearch({ 'table' => 'part_pkg',
+ 'hashref' => \%search,
+ 'extra_sql' => $extra_sql,
+ })
+ )
+{
next if ! $part_pkg->freq && $opt_r;
if ( $opt_o ) {