freeside/FS/FS part_pkg.pm,1.33,1.34

ivan ivan at pouncequick.420.am
Fri Feb 25 12:21:18 PST 2005


Update of /home/cvs/cvsroot/freeside/FS/FS
In directory pouncequick:/tmp/cvs-serv26432

Modified Files:
	part_pkg.pm 
Log Message:
oops, need to check this in, adding "options" option to part_pkg::insert to specify part_pkg_option records

Index: part_pkg.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/part_pkg.pm,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- part_pkg.pm	29 Jan 2005 12:34:10 -0000	1.33
+++ part_pkg.pm	25 Feb 2005 20:21:15 -0000	1.34
@@ -116,8 +116,8 @@
 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 @@
 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 @@
   }
 
   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 @@
         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;




More information about the freeside-commits mailing list