diff options
author | ivan <ivan> | 2005-02-25 20:21:15 +0000 |
---|---|---|
committer | ivan <ivan> | 2005-02-25 20:21:15 +0000 |
commit | fe9ee3d7adb3f651613db5d0ccfd242459dcd10d (patch) | |
tree | 30c7acf176b25d539576d0058be2f1aa1b003ab1 | |
parent | 4d599c8ce382f51d7bfbb4172cdc73a2c8bd400d (diff) |
oops, need to check this in, adding "options" option to part_pkg::insert to specify part_pkg_option records
-rw-r--r-- | FS/FS/part_pkg.pm | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/FS/FS/part_pkg.pm b/FS/FS/part_pkg.pm index f210a67d4..63cf00f57 100644 --- a/FS/FS/part_pkg.pm +++ b/FS/FS/part_pkg.pm @@ -116,8 +116,8 @@ sub clone { Adds this package definition to the database. If there is an error, returns the error, otherwise returns false. -Currently available options are: I<pkg_svc>, I<primary_svc>, I<cust_pkg> and -I<custnum_ref>. +Currently available options are: I<pkg_svc>, I<primary_svc>, I<cust_pkg>, +I<custnum_ref> and I<options>. If I<pkg_svc> is set to a hashref with svcparts as keys and quantities as values, appropriate FS::pkg_svc records will be inserted. @@ -131,6 +131,9 @@ record itself), the object will be updated to point to this package definition. In conjunction with I<cust_pkg>, if I<custnum_ref> is set to a scalar reference, the scalar will be updated with the custnum value from the cust_pkg record. +If I<options> is set to a hashref of options, appropriate FS::part_pkg_option +records will be inserted. + =cut sub insert { @@ -163,7 +166,8 @@ sub insert { } if ( $plandata ) { - warn " inserting part_pkg_option records for plandata" if $DEBUG; + + warn " inserting part_pkg_option records for plandata" if $DEBUG; foreach my $part_pkg_option ( map { /^(\w+)=(.*)$/ or do { $dbh->rollback if $oldAutoCommit; return "illegal plandata: $plandata"; @@ -182,6 +186,27 @@ sub insert { return $error; } } + + } elsif ( $options{'options'} ) { + + warn " inserting part_pkg_option records for options hashref" if $DEBUG; + foreach my $optionname ( %{$options{'options'}} ) { + + my $part_pkg_option = + new FS::part_pkg_option { + 'pkgpart' => $self->pkgpart, + 'optionname' => $optionname, + 'optionvalue' => $options{'options'}->{$optionname}, + }; + + my $error = $part_pkg_option->insert; + if ( $error ) { + $dbh->rollback if $oldAutoCommit; + return $error; + } + + } + } my $conf = new FS::Conf; |