summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2016-05-13 17:27:59 -0700
committerIvan Kohler <ivan@freeside.biz>2016-05-13 17:27:59 -0700
commitec443f3ab9fd937325691b17974ea5aa7dce264d (patch)
treed9b1822906c9dcfe21311147fa335f4fe8510788
parentbb64a357a453b06e0079444ce21c7e85d9c1527d (diff)
fix part_pkg-bulk_change when not using -o / -v, RT#41733
-rwxr-xr-xbin/part_pkg-bulk_change38
1 files changed, 22 insertions, 16 deletions
diff --git a/bin/part_pkg-bulk_change b/bin/part_pkg-bulk_change
index 32a51299f..c882954bf 100755
--- a/bin/part_pkg-bulk_change
+++ b/bin/part_pkg-bulk_change
@@ -20,22 +20,28 @@ $search{'comment'} = $opt_m if $opt_m;
foreach my $part_pkg ( qsearch('part_pkg',\%search) ) {
next if ! $part_pkg->freq && $opt_r;
- my %hash = (
- 'pkgpart' => $part_pkg->pkgpart,
- 'optionname' => $opt_o,
- );
-
- my $part_pkg_option = qsearchs('part_pkg_option', \%hash);
-
- if ( $part_pkg_option ) {
- next if $part_pkg_option->optionvalue eq $opt_v;
- $part_pkg_option->optionvalue($opt_v);
- my $error = $part_pkg_option->replace;
- die $error if $error;
- } else {
- $part_pkg_option = new FS::part_pkg_option { %hash, 'optionvalue'=>$opt_v };
- my $error = $part_pkg_option->insert;
- die $error if $error;
+ if ( $opt_o ) {
+
+ my %hash = (
+ 'pkgpart' => $part_pkg->pkgpart,
+ 'optionname' => $opt_o,
+ );
+
+ my $part_pkg_option = qsearchs('part_pkg_option', \%hash);
+
+ if ( $part_pkg_option ) {
+ next if $part_pkg_option->optionvalue eq $opt_v;
+ $part_pkg_option->optionvalue($opt_v);
+ my $error = $part_pkg_option->replace;
+ die $error if $error;
+ } else {
+ $part_pkg_option = new FS::part_pkg_option { %hash,
+ 'optionvalue'=>$opt_v,
+ };
+ my $error = $part_pkg_option->insert;
+ die $error if $error;
+ }
+
}
if ( $opt_t || $opt_s || $opt_S || $opt_z || $opt_Z ) {